我有一个表单通过ajax调用向数据库提交文章。 表格只有2个字段标题和文章文本。 我在我的文本区域使用tinymce编辑器。 当我从记事本中剪切文本并将其放入文本编辑器并使用ajax作为post数组将文本发送到服务器时,问题就出现了。
post数组删除了一些文本,我确定它不是数据库问题,因为我在文本插入数据库之前警告文本,文本仍然缺失。因此,当我通过ajax发送文本时,错过的文本就会发生了,错过了它。
这是文字
“使用和访问ISCN网站的条款” 本网站www.iscnsystem.org(“网站”)是一个服从国际标准制定机构(ISE)的互联网网站,有能力为证书和文件提供统一的全球代码,作为对互联网社区的服务。
使用本网站即表示您同意遵守本网站使用条款,条件和隐私政策(“使用条款”)和ISE隐私政策(“隐私政策”)。如果您不同意使用条款或隐私政策,请不要使用本网站。“
当我通过javascript打印它完成时我使用ajax并将其发送到php然后将其返回到javascript它将是这样的:
“使用和访问ISCN网站的条款” 本网站www.iscnsystem.org“
缺少另一部分
任何想法????
代码: ajax请求:
$("#submit_par1").click(function() {
pass = 1;
if(!$("#titlepar1").val()) {
pass = 0;
$("#titlepar1_error").val("required");
}
if(!tinyMCE.activeEditor.getContent()) {
pass = 0;
$("#textpar1_error").val("required");
}
if(pass==1) {
var values = $("#par1_form").serialize();
var tiny = tinyMCE.activeEditor.getContent();
$.ajax({
type: "POST",
url: "php/functions.php",
dataType:"text",
data: "tag=update_article&fortext="+tiny.stripSlashes()+"&" + values,
success: function (data) {
alert(data);
if(data.mess=="success") {
alert(tiny);
alert("saved");
} else {
alert(data.error);
}
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr.responseText);
}
});
}
})
用于处理请求的php函数:
function update_article($dbh) {
$data = array();
$text = preg_replace('/<!--.*?--\>/','',$_POST['fortext']);
$title = $_POST['titlepar1'];
$id = $_POST['article_id'];
$sql = "UPDATE pargs SET title=:title,text=:text WHERE id=:id";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(":title",$title);
$stmt->bindParam(":text",$text);
$stmt->bindParam(":id",$id);
if($stmt->execute()) {
$data['mess'] = "success";
} else {
$data['mess'] = "fail";
$data['desc'] = implode(' - ',$stmt->errorInfo());
}
echo $text;
}
答案 0 :(得分:0)
您可以在要停止执行的位置使用debugger;
关键字,并尝试查找会发生的情况。或者使用console.log(data);
希望这有帮助。
答案 1 :(得分:0)
我在你的文字中看到很多特殊的字符,可能是第一个&#39;(&#39;网站&#34;)杀死了你想要传递的字符串?
我尝试了以下代码并传递了完整的文本。
<?php
if(!empty($_POST['textinput'])){
$testtext = $_POST['textinput'];
echo $testtext;
}
echo("<form role='form' method='post' action='".$_SERVER['PHP_SELF']."'>");
echo("<textarea name='textinput' cols='50' rows='5'></textarea>");
echo("<button type='submit'>Send</button>");
echo("</form>");
?>
// PHP version 7.1.2