jQuery模式执行正常,但是当我想在php成功执行表单时显示警告消息时,我不知道我错过了什么?
$.post(
'name.php',
{ ime: ime, location: location },
function(data){
if (data.success) {
alert("form posted!");
}
else {
$("#dialog-form").dialog("open");
}
},
"json"
);
========================== PHP ============
if ($result == false) {
echo json_encode(array('success' => false, 'result' => 0));
exit;
}
echo json_encode(array('success' => true, 'result' => $result));
$sql2 = "DELETE FROM $names WHERE name='$ime'";
$result2 = mysql_query($sql2);
答案 0 :(得分:2)
看起来好像data.success
的值不会返回true或false(或者像你期望的那样作为布尔值进行评估)。
尝试:
$.post(
'name.php',
{ ime: ime, location: location },
function(data){
if (data.success == 'true') {
alert("form posted!");
}
else {
$("#dialog-form").dialog("open");
}
},
"json"
);
您还可以使用FIDDLER
查看从服务器返回的值。
答案 1 :(得分:1)
成功有3个参数success(data, textStatus, jqXHR)
我相信您可能需要textStatus
.success:
请求成功时要调用的函数。功能得到 传递了三个参数:从服务器返回的数据,格式化 根据dataType参数; 描述状态的字符串; 和jqXHR(在jQuery 1.4.x,XMLHttpRequest中)对象。
$.post(
'name.php',
{ ime: ime, location: location },
function(data, textStatus, jqXHR){
if (textStatus == "success") {
alert("form posted!");
}
else {
$("#dialog-form").dialog("open");
}
},
"json"
);