ajax返回true,但==返回false

时间:2017-08-19 04:19:57

标签: javascript php jquery mysql ajax

我有一个表单,然后将其发送到php,以便mysql插入ajax db。 一切顺利,php返回"true"值,但ajax显示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"}

P.S。我不知道返回值中的ENTER符号“↵”是什么,但我认为它不应该影响,对吧?

5 个答案:

答案 0 :(得分: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.");
    }
 }

答案 1 :(得分:0)

可能是你将true作为布尔值而不是字符串

试试这个

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

答案 2 :(得分:0)

你得到的价值可能是一个普通的字符串。尝试转换为json:

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

答案 3 :(得分:0)

您需要使用parse转换json字符串,如下所示。

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

请参阅此链接以获取更多信息http://api.jquery.com/jquery.parsejson/

答案 4 :(得分:0)

首先检查在打开php标签之前没有额外输入,或者在关闭php标签之后再将此行添加到您的请求中:

dataType:"json"