2017-08-19 242 views
3

我有一個表格,我將它發送到php以插入mysql db ajax。 一切都很順利,php返回"true"的值,但是在ajax中顯示的是false的消息。ajax返回true,但==返回false

在這裏你可以看看php代碼: -

if(isset($result)){ 
    $value = array('msg' => 'true'); 
} else { 
    $value = array('msg' => 'false'); 
} 
echo json_encode($value); 

,這是ajax代碼: -

success: function(value){ 
    if (value.msg == 'true') { 
     alert("Saved"); 
    }else{ 
     alert("Something went wrong."); 
    } 

,並從控制檯:

//value = "↵{"msg":"true"} 

附:我不知道輸入符號「↵」在返回值中做什麼,但我認爲它不應該影響,對吧?

+0

請分享你的PHP + jQuery代碼完全正確解決您的問題 –

+0

當我試圖\t數據類型:「JSONP」,出現\t既不真消息也不是假消息,但數據保存正確 – Hossam

+1

這是'json'不''jsonp' –

回答

4

您需要添加: -

dataType:"json", 

在你的Ajax,它會工作。

還有一個解決辦法是$.parseJSON(如果你不使用dataType:"json"): -

success: function(value){ 
    var json = $.parseJSON(value); 
    if (json.msg == 'true') { 
     alert("Saved"); 
    }else{ 
     alert("Something went wrong."); 
    } 
} 
+0

感謝兄弟,它的工作方式像魔法;) – Hossam

0

可能是你正在true布爾不是字符串

嘗試這樣

if (value.msg == true) { 
    alert("Saved"); 
}else{ 
    alert("Something went wrong."); 
} 
+4

它清楚地表明true/false是字符串那裏 –

+0

它不是布爾值,但我反正試了,沒有什麼不同 – Hossam

0

也許你回來的值是一個普通字符串。嘗試轉換爲json:

success: function (value) { 
    value = JSON.parse(value); 
    if(value.msg ==='true') { 
     /* your logic here */ 
    } 
} 
0

您需要將json字符串與parse進行轉換,如下所示。

success: function(value){ 
var json = $.parseJSON(value); 
    if (json.msg == 'true') { 
     alert("Saved"); 
    }else{ 
     alert("Something went wrong."); 
    } 

請參考以下鏈接瞭解更多信息http://api.jquery.com/jquery.parsejson/

0

首先檢查是否有開放的PHP標籤之前或關閉PHP的標籤後沒有多餘的輸入那麼這行添加到您的請求:

dataType:"json" 
相關問題