2016-10-28 6 views
1

json_encodeデータを返すPHPスクリプトへのAjax呼び出しを行うアプリケーションを開発しています。json解析エラー - 未知の型エラー: 'in'演算子を使用して '1009'を検索できません

期待どおりにデータがPHPから返されています。しかし、jqueryでそれを解析しようとすると、私はコンソールエラーを取得しています:

Uncaught TypeError: Cannot use 'in' operator to search for '1009'

私のデータ配列のコピーが続きます。

JSONエンコードされたデータの例はここにある:

[ 
{"u_id":"21747","fname":"Andy","lname":"","email":"[email protected]"}, 
{"u_id":"3748","fname":"John","lname":"","email":"[email protected]"},  
{"u_id":"451750","fname":"Peter","lname":"","email":"[email protected]"}, 
] 

次のように私が使用しているjQueryのです。けれども、

$(function() { 
    $('#myModal').on('shown.bs.modal', function() { 
     $(".modal-body").html("Loading..."); 
      $.ajax({ 
       url: "<?= $router->pathFor('/admin/ajax/find-user'); ?>", 
       data: { 
        searchInput: $('#searchInput').val() 
       }, 
       method: "POST", 
      }).done(function(data) { 
      //$(".modal-body").html(data); 
      $.parseJSON(data); 
      $.each(data, function(key, value){ 
       $(".modal-body").html('<input type="checkbox" id="' + value.u_id + '">' + value.email + "<br>"); 
      }); 
     }); 
    }); 
}); 

これで何が悪い、と何(私は私のデータのどこに1009エラーの平均を見ることができないん所望の出力は、それが次のtickboxに人々の電子メールアドレスのリストを表示するためのものですそれはそれが実際に何を意味するのかだかどうかわからない)あなたは最初あなたのJSONデータを解析する必要が

+2

*「簡潔さのために.done部分を表示しています」*あまりにも簡潔です。 'データ'とは何ですか?それはどこから来ていますか? 'ajax'で読み込んで適切な' Content-Type'ヘッダを返しているのであれば、おそらくオブジェクトの配列に解析されていますが、... –

+0

'console.log(data);'を実行して貼り付けますあなたの出力は問題になります。 – divix

+0

@ T.J.Crowderが最新のjqueryを使用するように更新されました – Andy

答えて

2

:?

var parsedData = $.parseJSON(data); 

しかし、あなたのPHPスクリプトが正しいContent-TypeでJSONを返す場合、あなたは必要ありません。に それを行う。 PHPスクリプトがContent-Type: application/jsonを送信したことを確認した場合、jQueryはそれを自動的に解析してから与えてくれます。それが問題を解決する別の方法です。

+2

jQueryはすでに解析済みです。あまりにも悪いOPは私たちにもう少し文脈を示さなかった。 –

+0

Hmmm、右.... –

+0

使用中のjqueryを表示するように更新しました。また、@ Raxの行を試しましたが、違いはありません。 – Andy

-2

しかし、あなたがでlargeJSONobject.data LIKE $ .each(largeJSONobject.data、機能(キー、値){ $(」。モーダル・体 ")を試すことができます。HTML( '' + value.email +"
"); });

関連する問題