2012-01-06 25 views
0

これはおそらく修正するのが非常に簡単なものです。私はPHPページに投稿して、db-($.ajaxを介して投稿)で作成された新しい要素のIDを返します - 返された値を記録しました。json配列要素にアクセス

次のコードは、私が

$.ajax({ 
       type: "POST", 
       url: "<?=base_url()?>events/add_tag_js/", 
       data: url, 
       success: function(html){ 

        $("#tag_list").append('<li><span id="" class="tag">'+formvalue+'<span class="remove_tag"><a class="remove_tag_link" href="#">x</a></span></span></li>'); 
        $("#add_tag").val(''); 
        console.log(html); 
       }, 
       failure: function(){ 
        $('.error').show(); 
        $("#add_tag").val(''); 
       } 

      }); 

を投稿するために使用するコードであるにconsole.logからの戻り値は

{"error":false,"msg":"Tag added","id":44} 

ですが、私はalert(html.id)を行うとき、私は未定義のですか?私はこれを行うに返されたJSONを解析する必要がありますか?または私のjsonは間違っていますか?

答えて

2

おそらく、あなたのサーバーサイドスクリプトに適切なコンテンツタイプを設定していない可能性があるので、jQueryはこれがJSONであることを知らないでしょう。だからあなたのサーバスクリプトでapplication/jsonにコンテンツタイプを設定したりいずれかはまた、あなたがdataTypeパラメータを使用して要求にJSONを期待していることを示している可能性があり:

... 
type: "POST", 
url: "<?=base_url()?>events/add_tag_js/", 
data: url,  
dataType: 'json', // indicate that you expect JSON from the server 
... 

あなたのサーバー側のスクリプトは、適切なコンテンツを設定することが推奨されているがタイプ。

0

あなたの場合は、htmlがStringであるため、Jsonとして処理するように指示してください。var myObj = eval(html)にする必要があります。悪いです

$.ajax({ 
    url: url, 
    dataType: 'json', 
    data: data, 
    success: callback 
}); 
関連する問題