无法使用 Javascript AJAX 从 Summernote textarea 获取价值发送帖子数据

Posted

技术标签:

【中文标题】无法使用 Javascript AJAX 从 Summernote textarea 获取价值发送帖子数据【英文标题】:Can't get value from Summernote textarea using Javascript AJAX send post data 【发布时间】:2018-07-02 02:33:48 【问题描述】:

我一直在检查summernote API,那里有我的代码

<form id="mail">
  <input type="text" id="email">
  <textarea id="summernote"></textarea>
  <input type="submit">
</form>
$('#summernote').summernote(
  placeholder: 'your Message',
  tabsize: 2,
  height: 300
);

$('document').ready(function() 
  var messageData = $('#summernote').summernote('code');
  var email = $('#email').val();
  $(function() 
    $('#mail').submit(function(event) 
      event.preventDefault();
      $.ajax(
        url: 'sendmail.php',
        type: 'post',
        data: 
          'send_mail': 1,
          'to': email,
          'message': messageData,
        ,
        success: function(response) 
          if (response == 'success') 
            //my success response
           else if (response == 'error') 
            //my error response
          
        
      );
    );
  );
);

我的问题是消息已成功发送,但我没有得到那个文本区域的值,只是一封空的电子邮件。请帮忙。

注意:我正在使用 phpMailer 发送电子邮件。

【问题讨论】:

有些事情要检查是您的summernote 初始化超出$(document).ready()..;您将$(function() .. 嵌套在$(document).ready.. 中,这不是必需的。所以删除它。并将您的 summernote 初始化代码添加到 $(document).ready.. 好的,我试试。谢谢你的回答。 哦,谢谢你成功了!非常感谢先生! 【参考方案1】:

修改代码如下:

    在 ready 函数中初始化“summernote”。 在邮件提交事件中获取 Summer note 值

代码如下:

$('document').ready(function()

    $('#summernote').summernote(
       placeholder: 'your Message',
       tabsize: 2,
       height: 300
    );


     $(function()
         $('#mail').submit(function(event)

           var messageData = $('#summernote').summernote('code');
           var email = $('#email').val();

          event.preventDefault();
          $.ajax( 
           url: 'sendmail.php',
           type: 'post',
           data:  
            'send_mail' : 1, 
            'to' : email,
            'message' : messageData, 
           , 
           success: function(response) 
            if(response == 'success') 
            //my success response
              else if (response == 'error')
            //my error response
             
            
           );
          );
     );
);

【讨论】:

【参考方案2】:

var paragraph = document.getElementsByClassName("note-editable card-block")[0].setAttribute("id","paragraph");
$.ajax(
            type: 'POST',
            url: 'post.php',
            data:  "summernote": $('#summernote').html(),
            
            
            success: function(response) 

                $("#result").text(response);
                $("#result").attr("class","text-success");
            ,
            error: function( jqXhr, textStatus, errorThrown )
                console.log( errorThrown );
                $("#result").text("good");
                $("#result").attr("class","text-success");
            

        );

【讨论】:

以上是关于无法使用 Javascript AJAX 从 Summernote textarea 获取价值发送帖子数据的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4:部分渲染后无法使用javascript(使用ajax)

使用触发 javascript 验证的 POST 表单和 AJAX 登录到 PHP 文件。无法将数据存储到 PHP

使用 javascript 没有 jQuery 的简单 ajax 表单

Asp.net 使用 ajax (javascript) 从布局页面中的 api 控制器获取数据

如何使用ajax将数据从视图发送到控制器laravel?

使用ajax post将图像从本地商店发送到mysql