2016-04-26 4 views
2

多くの誘惑の後、多くの記事を読んだ後、私はまだJqueryを使用してmySQLフィールドを読むことができません。 DBに接続して、いくつかのデータを取得する私のPHPコードは、echo json_encode($html);を使用して、次を出力:AjaxとPHPを使用してmySQLフィールドにアクセス

{"id":"1","title":"this_is_title","description":"this_is_description","url":"this_is_url"} 

私は、単一のフィールドを読み取ろうが、私は「未定義」になっておきます。

$.getJSON("get.php", function(result) { 
    $.each(result, function(key, field){ 
     console.log(field.title); 
    }); 
}); 

私は単にそれが動作しますが、私は(もちろん)すべてのフィールドを取得field代わりのfield.titleを使用する場合:たとえば。

答えて

0

あなたのJSONデータは、単一のオブジェクトではなく、オブジェクトの配列が含まれています。

そのコールバック関数内keyは、プロパティ名とfieldになりますので、あなたは、プロパティなり、$.eachでこのJSONオブジェクト内の各プロパティを反復処理しています。

はこれにあなたのコンソールログ呼び出しに変更し

console.log(field); 

を、あなたは違いを見ることができ、プロパティの値の意志が記録されます。

あなたはそうのような直接JSONのプロパティにアクセスすることができます

$.getJSON("get.php", function(result) { 
    console.log(result.id); 
    console.log(result.title); 
    // etc 
}); 
+0

しかし、私はどのようにフィールド名でmySQLフィールドにアクセスできますか? 「field.title」という表記を使用するコードを見ました。 – Nicero

+0

'$ .each'を使って反復処理する必要はありません。その部分を削除し、 'result.id'、' result.title'などを使用してください – danjam

0

アクセスしてみてください、その後、これを試してみてくださいparseJSONを使用して:

$.getJSON("get.php", function(result) { 
    var obj = JSON.parse(result); 
    $.each(obj, function(key, field){ 
    console.log(key); // here you will get index like id,title 
    console.log(field); // here you will get value 
    }); 
}); 
+0

私が取得 - >でSyntaxError:JSON.parse:JSONデータの行1列2での予想外の文字を。 Jsonデータはどこで間違っていますか? – Nicero

+0

また、var obj = JSON.parse(result) –

+0

を試してみました。回答も更新しました。 –

3

を、あなたは簡単に、各フィールドにアクセスすることができます返されるだけで、単一のオブジェクトがある場合。 フィールド名はすでにわかっていますので、それらを使用してください。

$.getJSON("get.php", function(result) { 
    console.log(result.id); 
    console.log(result.title); 
    console.log(result.description); 
    console.log(result.url); 
}); 
関連する問題