如何使用PHP和jQuery成功发布表单时显示警报?

时间:2012-10-09 13:07:29

标签: php jquery

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);   

2 个答案:

答案 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查看从服务器返回的值。

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

答案 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"
);