0

私はこのサイトで解決策を探しましたが、残念ながらまったく機能しなかったので、皆さんに聞いてみることにしました。あなたが私を助けてくれることを願っています。

値を配列にプッシュするこのPHPファイルがあります。

PHPファイル:

$out_html = array();
$type1_ach = array(
    "title" => $ach_info[0], //Title1 is Value of $ach_info[0]
    "description" => $ach_info[1] //Description1 is Value of $ach_info[1]
);
array_push($out_html, $type1_ach);

$type5_ach = array(
    "title" => $ach_info[0], //Title2 is Value of $ach_info[0]
    "description" => $ach_info[1] //Description2 is Value of $ach_info[1]
);

array_push($out_html, $type5_ach);

jqueryを介して渡すため、JSONを使用してエコーしました。

echo json_encode($out_html);

これが私のHTMLファイルで、PHPファイルから渡したデータを出力するはずです。

HTMLファイル:

function test_pop() {
    var fb_id = "1**************"; //Facebook ID
    var v_id = "***********"; //Video ID

$.post('http://mysite.com/test.php', {fb_id: fb_id, v_id: v_id}, function(data) {
    var obj = $.parseJSON(data);
    var title = obj.title;
    var description = obj.description;
    var whole_ach = "You obtained " + title + "<br>" + description;
    console.log(whole_ach);

});
}

コンソールログに応答を出力します。

undefined<br>undefinedを取得しました

次に、変数var title = obj.title;をに変更するvar title = obj.title[0]; と、出力(応答)が得られます。description = obj.descriptiondescription = obj.description[0]

Uncaught TypeError:未定義のプロパティ「0」を読み取ることができません

目的の出力は次のようになります。Title1<br>Description1を取得しましたが、残念ながら正しく実行できないようです。

皆さんが私を助けてくれることを願っています、ありがとう。

4

2 に答える 2

1

オブジェクトの配列を受け取っているはずです。配列もそうdataですが、あなたはそれをオブジェクトのように扱っています。

配列をループしてみてください。

$.each(obj,function( index, item){    
   console.log( item.title);    
})

または、メイン配列から値に直接アクセスする場合:

console.log( obj[0].title);
于 2013-01-02T05:01:37.077 に答える
1

JavaScriptコードを更新する必要があります:

function test_pop() {
    var fb_id = "1**************"; //Facebook ID
    var v_id = "***********"; //Video ID

$.post('http://mysite.com/test.php', {fb_id: fb_id, v_id: v_id}, function(data) {
    var obj = $.parseJSON(data);
    var title = obj[0].title;
    var description = obj[0].description;
    var whole_ach = "You obtained " + title + "\n" + description;
    console.log(whole_ach);

});
}

配列のインデックス番号を指定する必要があります。

    var title = obj[0].title;
    var description = obj[0].description;

お役に立てば幸いです。

于 2013-01-02T05:03:30.087 に答える