2012-10-09 34 views
4

jQuery模式執行得很好,但我不知道當我想要在PHP成功執行表單時顯示一條警告消息時我缺少什麼?如何使用PHP和jQuery成功發佈表單時顯示警報?

$.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

檢查像您期望在控制檯,以確保數據的響應回來。 –

+0

我已經從下面的控制檯發佈了結果。 – pero

回答

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

看起來彷彿data.success值不回來爲真或假的(或evaulating爲布爾像你期望)。

嘗試:

$.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/

+0

感謝您的回覆。根據您的更改代碼。如果控制檯中的數據庫中不存在記錄,我會得到:** result:0,success:false **。 如果它確實存在於控制檯中,我會得到:** {「success」:true,「result」:[「67」,「John」,「London」]} ** 仍然不警告,只是執行查詢。 – pero

相關問題