簡體   English   中英

使用 AJAX MVC PHP 發送內容 tinyMCE

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM