[英]How can I send tinyMCE textarea editor content to inside controller using Symfony3 and Ajax
[英]Send content tinyMCE using AJAX MVC PHP
我正在嘗試發布一個包含主題和消息等電子郵件元素的數組。 我在主題部分使用了 tinyMCE,現在這是唯一沒有通過的部分。 所有其他 POST 變量都包含一些內容。
腳本:
$('#message').html(tinymce.get('#message').getContent());
$.ajax({
type: "POST",
data: $('#contact-form, #message').serializeArray(),
dataType: 'JSON',
url: $('#url').val() + 'Ajax/ajax',
success: function ($data) {
console.log($data);
console.log("Email verzonden!");
},
error: function (jqXHR, exception) {
alert("ajaxerror: " + jqXHR.responseText);
}
});
});
形式:
<section class="mb-4">
<div class="row">
<div class="col-md-9 mb-md-0 mb-5">
<form id="contact-form" name="contact-form">
<div class="row">
<div class="col-md-12">
<div class="md-form mb-0">
<input type="text" id="reciever" name="reciever" class="form-control" placeholder="Aan *" required>
</div>
<div class="md-form mb-0">
<input type="text" id="cc" name="cc" class="form-control" placeholder="CC">
</div>
<div class="md-form mb-0">
<input type="text" id="bcc" name="bcc" class="form-control" placeholder="BCC">
</div>
<div class="md-form mb-0">
<input type="text" id="subject" name="subject" class="form-control" placeholder="Onderwerp *" required>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="md-form">
<textarea type="text" id="message" name="message" rows="2" class="form-control md-textarea" placeholder="Bericht *"></textarea>
</div>
</div>
</div>
<div class="text-center text-md-left">
<input type="hidden" name="action" value="GCSSendMail">
<input type="submit" id="GCSSendMail" class="btn btn-primary AjaxCall" value="Submit">
</div>
<div class="status"></div>
</form>
</div>
</div>
</section>
<a href="<?php echo BASE_URL ?>Mail/mail">Go mail</a>
Ajax控制器
function action()
{
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case "SendMail":
$mailController = new MailController;
$result = $mailController->sendMail($_POST['reciever'], $_POST["subject"], $_POST["message"]);
return $result;
break;
}
}
}
我有一些額外的文件連接到它,如調度程序和控制器,但這對沒有到達 ajax 腳本的內容沒有影響。
在頁面上加載 TinyMCE 時,原始<textarea>
不再可見。 TinyMCE 使用 iframe 作為內容編輯區域來代替<textarea>
。 如果您使用 JavaScript 代碼發送表單的內容,則底層<textarea>
將不包含任何內容,因為您實際上並未在<textarea>
鍵入內容。 您可以在tinymce
對象上使用triggerSave()
方法讓 TinyMCE 使用編輯器的當前內容更新<textarea>
。 您應該在開始 AJAX POST 過程之前執行此操作。
代替
$('#message').html(tinymce.get('#message').getContent());
……你想用……
tinymce.triggerSave();
你犯了一個愚蠢的錯誤。 您沒有提供 AJAX 請求的 URL。 看線
url: $('#url').val() + 'Ajax/ajax',
我找不到 html 形式的url ID。 將完全限定的 URL 添加到 AJAX 的 url 屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.