【问题标题】:TinyMCE and AJAX is not sending data to php in mysql serverTinyMCE 和 AJAX 没有向 mysql 服务器中的 php 发送数据
【发布时间】:2019-04-12 12:49:22
【问题描述】:
 <!-- Page containing form -->



段落

       <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>



        <script src="//tinymce.cachefly.net/4.2/tinymce.min.js"></script> 
        <!-- Just be careful that you give correct path to your tinymce.min.js file, above is the default example -->
        <script>tinymce.init({selector:'textarea'});</script>


  </head>

-->
       <div class="container">  
            <br />  
            <br />  
            <h2 align="center">Enter a new paragraph</h2>  
              <div class="form-group">  
                   <form name="add_paragraph" id="add_paragraph">  
                        <div class="table-responsive">  
                             <table class="table table-bordered 

id="dynamic_field">

                                      <tr>
                                        <textarea id = "paragraph" type="text" name="paragraph" placeholder="Enter paragraph text"></textarea>
                                      </tr>
                                      </tr>  

                             </table>  
                             <input type="button" name="submit" id="submit" class="btn btn-info" value="Submit" />  
                        </div>  
                   </form>  
              </div>
       </div>
  </body>    </html>    <script>    $(document).ready(function(){   
  $('#submit').click(function(){            
       $.ajax({  
            url:"form1_support.php",  
            method:"POST",  
            data:$('#add_paragraph').serialize(),  
            success:function(data)  
            {  
                 alert(data);  
                 $('#add_paragraph')[0].reset();  
            }  
       });  
  });    });   </script>

需要'db/connect.php';

$number = count($_POST["paragraph_name"]); //它说经验 之前,也许是 experience_list?

if($number > 0)    {
  for($i=0; $i<$number; $i++)  
  {  
       if(trim($_POST["paragraph_name"] != ''))  
       {  
        $paragraph_name = mysqli_real_escape_string($db, $_POST['paragraph_name']);
        $paragraph_text = mysqli_real_escape_string($db, $_POST['paragraph']);

        $sql = "INSERT INTO paragraph (paragraph_name, paragraph_text) 
                VALUES( '$paragraph_name', '$paragraph_text')";  

        mysqli_query($db, $sql);  
       }  
  }  
  echo "Data Inserted";    }    else    {  
  echo "Please Enter Your Paragraph.";    }    ?>

【问题讨论】:

  • 我对此很陌生,也许你能帮帮我。我正在处理传统的 php/mysql 数据,并且很难使用 MCE 编辑器。页面上看起来一切都很好,但是当我按下提交时,“plain jane 'text'”字段会插入,而来自 TinyMCE 的数据却没有。我正在使用 AJAX 调用将数据发送到第二页。无论出于何种原因,它都不起作用。任何帮助将不胜感激。
  • 作为一个友好的建议...您应该查看有关如何提出好问题的 Stack Overflow 指南。你的问题没有很好的组织,如果我没有为制作 TinyMCE 的公司工作,我很难回答你的问题。 stackoverflow.com/help/how-to-ask
  • 我向朋友道歉。我不知道正确的行为。不过感谢您的回复。

标签: php html sql ajax tinymce


【解决方案1】:

如果您将 textarea 替换为 TinyMCE,则实际的 textarea 不会自动更新,除非发生以下情况之一:

  • 您执行标准 HTML 表单提交 - 在这种情况下,TinyMCE 将在表单提交过程开始时自动更新 textarea
  • 您使用triggerSave() API 强制TinyMCE 更新textarea

尝试在发送 AJAX 请求之前添加 triggerSave() 调用。

https://www.tiny.cloud/docs/api/tinymce/root_tinymce/#triggersave

【讨论】:

  • 谢谢。最终代码如下所示(re: AJAX 调用)。
  • 如果您解决了这个问题,您能否接受所提供的答案,以便其他人知道无需提供进一步的输入?
【解决方案2】:
<textarea id="editor" name="editor" type="text"></textarea>

 tinyMCE.triggerSave();
    var content = $("textarea[name=editor]").val();
    var formData = new FormData();
    formData.append("content", content);


 $.ajax({
            url: '../boot/newBlog.php',
            method: 'POST',
            type: 'POST',
            data: formData,
            contentType: false,
            processData: false,
            success: function(response) {
                switch (response){
                  
                }
              }
        });

【讨论】:

  • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
猜你喜欢
  • 2012-07-11
  • 2019-05-27
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 2020-08-31
  • 2020-04-13
相关资源
最近更新 更多