Php 出现错误:SyntaxError:JSON.parse:意外字符
我正在尝试使用JQuery/JSON更新记录,但我看到了以下错误: 发生了一个错误: [对象] 解析器错误 语法错误:JSON.parse:意外字符 我的JS:Php 出现错误:SyntaxError:JSON.parse:意外字符,php,jquery,mysql,json,Php,Jquery,Mysql,Json,我正在尝试使用JQuery/JSON更新记录,但我看到了以下错误: 发生了一个错误: [对象] 解析器错误 语法错误:JSON.parse:意外字符 我的JS: jQuery('#commentForm').live('submit',函数(事件){ event.preventDefault() ajax(编辑url{ 数据:jQuery(this).serialize(), 数据类型:“json”, 键入:“POST”, 成功:功能(数据){ 如果(data.error==='OK'){ 警报
jQuery('#commentForm').live('submit',函数(事件){
event.preventDefault()
ajax(编辑url{
数据:jQuery(this).serialize(),
数据类型:“json”,
键入:“POST”,
成功:功能(数据){
如果(data.error==='OK'){
警报(“正常c良好”)
}否则{
警报('hi'+数据错误)
}
},
错误:函数(x,y,z){
警报('发生错误:\n'+x+'\n'+y+'\n'+z);
}
})
返回false;
})
和我的php:
$ret=array(
'错误'=>'确定',
);
$update=
“更新crm\u集\u用户集”。
“crm\u set\u users\u civilite=”。mysql\u real\u escape\u string($crm\u set\u users\u civilite)。“,”。
“crm\u set\u users\u nom=”。mysql\u real\u escape\u string($crm\u set\u users\u nom)。“,”。
“crm\u set\u users\u prenom=”。mysql\u real\u escape\u string($crm\u set\u users\u prenom)。“,”。
“crm\u set\u users\u email=”。mysql\u real\u escape\u字符串($crm\u set\u users\u email)。“,”。
“crm\u set\u users\u telephone=”。mysql\u real\u escape\u字符串($crm\u set\u users\u telephone)。“,”。
“crm_set_users_portable=”。mysql_real_escape_string($crm_set_users_portable)。”;
如果($crm\U set\U users\U photo!=“”){
$update.=”,crm\u set\u users\u photo=”。.mysql\u real\u escape\u string($crm\u set\u users\u photo)。“;
}
$update=
“在哪里”。
“crm_set_users_id=”.mysql_real_escape_string($user_id)。”;
echo json_编码($ret);
出口
如果我的php是:
$ret=array(
'错误'=>'确定',
);
echo json_编码($ret);
出口
然后它工作了
谢谢你的帮助 您的PHP可能会抛出一些错误或警告,使返回的文档不是有效的JSON字符串。使用调试器可以查看PHP脚本返回的实际结果
在PHP docu for
mysql\u real\u escape\u string
()之后,如果没有可用的活动mysql连接,它将抛出一个错误。可能这就是您的问题。可能您的PHP抛出了一些错误或警告,这使得返回的文档不是有效的JSON字符串。使用调试器可以查看PHP脚本返回的实际结果
在PHP docu for
mysql\u real\u escape\u string
()之后,如果没有可用的活动mysql连接,它将抛出一个错误。这可能是您的问题。问题一定是更新记录的php失败,因此json无法输出
我认为您需要在WHERE
$update .=
" WHERE ".
为了在字符串的其余部分之后给它一些空间,问题一定是更新记录的php失败了,因此json没有被输出 我认为您需要在
WHERE
$update .=
" WHERE ".
为了在字符串的其余部分之后给它一些空间请在十六进制编辑器(而不是浏览器)中检查输出,前后的一些垃圾(特别是utf-8 BOM)可能是原因。欢迎使用堆栈溢出!您知道吗,您只需以长格式编写一次
jQuery
?通过将代码包装在(函数($){…})(jQuery)中代码>,您可以使用$
,无论是否使用了noConflict
。此外,由于您只有1个元素,您可以删除该逗号。请在十六进制编辑器(而不是浏览器)中检查输出,前后的一些垃圾(特别是utf-8 BOM)可能是原因。欢迎使用堆栈溢出!您知道吗,您只需以长格式编写一次jQuery
?通过将代码包装在(函数($){…})(jQuery)中
,您可以使用$
,无论是否使用了noConflict
。此外,由于只有1个元素,您可以删除该逗号。这可能是正确的,但在给定的源代码中,SQL查询从未发送到MySQL服务器。因此,这不应该是错误的原因。这可能是正确的,但在给定的源代码中,SQL查询从未发送到MySQL服务器。因此,这不应成为错误的原因。