2017-08-19 199 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" 
相关问题