4

jQuery modal 执行得很好,但是当表单被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);   
4

2 回答 2

2

看起来好像 的值data.success没有返回为真或假(或像您期望的那样评估为布尔值)。

尝试:

$.post(
 'name.php', 
 { ime: ime, location: location }, 
function(data){                     
    if (data.success == 'true') {
        alert("form posted!");
    }
    else {
        $("#dialog-form").dialog("open");
    } 
},
"json"

);

您还可以使用FIDDLER来查看从服务器返回的值。

http://www.fiddler2.com/fiddler2/

于 2012-10-09T13:13:51.187 回答
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"
);
于 2012-10-09T13:13:50.093 回答