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

我认为回调函数接受两个值 index 和 value

所以代码应该是

$.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 回答