2017-08-19 17 views
3

私はフォームを持っていて、に接続するためにphpに送る。ajaxによって。 すべてがうまく行きました。php"true"の値を返しますが、には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"} 

P.S.私は返された値でENTER記号 "↵"が何なのか分かりませんが、それは影響してはいけないと思いますよね?

+0

私は\t dataTypeとしようとしたとき、完全に正しく –

+0

をあなたの問題を解決するために、あなたのPHP + jQueryのコードを共有してください:「JSONP」、\t真のメッセージでも偽のメッセージのいずれも表示されますが、しかし、データが正しく保存されました – Hossam

+1

それは 'json'ではなく' jsonp'ではありません –

答えて

4

ために、このリンクを参照してください: - あなたのAjaxで

dataType:"json", 

をし、それが動作します。

(あなたが dataType:"json"を使用していない場合)

もう一つの解決策は、$.parseJSONです: - 余分なオープンPHPタグの前や近くのphpタグの後に入力した後、あなたの要求に次の行を追加していないがあることが

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

ありがとう、それは魔法のように働いた;) – Hossam

0

は、おそらくあなたが戻って取得値はプレーンな文字列である文字列として

この

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

true/falseは文字列であることがはっきりと示されています –

+0

それはブール値ではありませんが、とにかく試しました。違いはありません – Hossam

0

のようにしてみませんブール値としてtrueを得ているかもしれませ。 jsonへの変換を試してください:

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

以下のように、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/

0

最初のチェック:

dataType:"json" 
関連する問題