2

次のコードがあります。ドロップダウン選択がトリガーされた後、最初の部分がPHPからJSONを取得します。結果は、それが機能することを確認するためだけに、「results」と呼ばれるdivに配置されます。その時点まではすべてが良さそうです。また、JSONを解析し、アラートのシーケンスで個々の要素を表示する数行のコードがあります。これも、この時点まで機能していることを確認するためです。ただし、この後、アラートの作成と同様の方法でJSONを解析し、個々の結果のみを別々の配列に配置しようとします。$ .eachが実行されたときに結果を警告するチェックがあり、コードブロックが機能しているかどうかを確認できます。ただし、動作しません。かっこが正しく設定されていないか、どこかで別の関数を宣言する必要があるのではないかと推測しています。

ご協力いただきありがとうございます。

$(document).ready(function() {

    $('#routesDropDown').change(function() {   
        var queryParam = 'routesStations=' +$(this).val();
        $.post('getstations.php', queryParam, processResponse);

    });

    function processResponse(data) {
    $('#results').html(data);   

// parse the data and store in variable, "obj"
var obj  = jQuery.parseJSON( data );
// iterate through each value in the "obj" variable
$.each(obj, function(key, value) {
    alert(value.color + ' ' + value.abbr + ' ' + value.lat + ' ' + value.lng);
});

        //THIS IS THE PART THAT DOES NOT WORK...
    var obj = jQuery.parseJSON( data ) {
        var color = [];
        var abbr = [];
        var lat = [];
        var lng = [];
        $.each(obj, function(value) {
            color.push(value.color);
            abbr.push(value.abbr);
            lat.push(value.lat);
            lng.push(value.lng);
            alert(value.color + ' ' + value.abbr + ' ' + value.lat + ' ' + value.lng);      
    })};

});
4

4 に答える 4

1

私にとって、jquery の秘密はセレクターです...

$.each() 関数の前に簡単な "alert(data)" を実行して、自分が得ていると思うものを得ていることを確認します...

于 2012-07-31T04:25:31.503 に答える
1

コールバック関数はインデックスと値の2つの値を受け入れると思います

したがって、コードは

$.each(obj, function(index, value) {<--- Here i have added index. Like your above code.
        color.push(value.color);
        abbr.push(value.abbr);
        lat.push(value.lat);
        lng.push(value.lng);
        alert(value.color + ' ' + value.abbr + ' ' + value.lat + ' ' + value.lng);      
})
于 2012-07-31T04:39:41.557 に答える
0

json が作成されていないと思います。コンソールで確認できます。コードが json を返さない場合は、次のような関数にjsonパラメーターを渡す必要があります。$.post

$.post('getstations.php', queryParam, processResponse,"json");

ここのドキュメントを参照してください: jQueryPost

于 2012-07-31T04:31:01.153 に答える
0
$.post('getstations.php', queryParam, processResponse,"json");
queryParam你现在是一个字符串不是一个object对象 jquery api文档说明这里是需要传入一个{xxx:xxx}对象
于 2012-07-31T05:10:09.053 に答える