我正在尝试使用 JQuery/JSON 更新记录,但我看到此错误:
发生错误:
[对象对象]
解析器错误
语法错误:JSON.parse:意外字符
我的JS:
jQuery('#commentForm').live('submit', function (event) {
event.preventDefault()
jQuery.ajax(edit_url, {
data: jQuery(this).serialize(),
dataType: 'json',
type: 'POST',
success: function (data) {
if (data.error === 'OK') {
alert('ok c good')
} else {
alert('hi' + data.error)
}
},
error: function(x,y,z){
alert('An error has occurred:'n' + x + ''n' + y + ''n' + z);
}
})
return false;
})
还有我的php:
$ret = array(
'error' => 'OK',
);
$update =
"UPDATE crm_set_users SET ".
"crm_set_users_civilite = '".mysql_real_escape_string($crm_set_users_civilite)."',".
"crm_set_users_nom = '".mysql_real_escape_string($crm_set_users_nom)."',".
"crm_set_users_prenom = '".mysql_real_escape_string($crm_set_users_prenom)."',".
"crm_set_users_email = '".mysql_real_escape_string($crm_set_users_email)."', ".
"crm_set_users_telephone = '".mysql_real_escape_string($crm_set_users_telephone)."', ".
"crm_set_users_portable = '".mysql_real_escape_string($crm_set_users_portable)."'";
if($crm_set_users_photo != ""){
$update .=", crm_set_users_photo = '".mysql_real_escape_string($crm_set_users_photo)."'";
}
$update .=
"WHERE ".
"crm_set_users_id = '".mysql_real_escape_string($user_id)."'";
echo json_encode($ret);
exit;
如果我的 php 是 :
$ret = array(
'error' => 'OK',
);
echo json_encode($ret);
exit;
然后它工作...
谢谢你的帮助!
可能您的 PHP 会抛出一些错误或警告,这使得返回的文档不是有效的 JSON 字符串。使用像FireBug这样的调试器来查看PHP脚本返回的实际结果。
遵循 PHP 文档进行mysql_real_escape_string
(链接)如果没有可用的活动 MySQL 连接,它将抛出错误。也许那是你的问题。
问题一定是更新记录的 php 失败,因此 json 没有输出。
我认为您需要在WHERE
之前添加一个空格
$update .=
" WHERE ".
在字符串的其余部分之后给它一些空间