在jquery中检索数组值

时间:2009-09-02 09:01:59

标签: php jquery json

我的代码:

$.get('ajax/time_menus.php', { shift: $('#shifts').val() },      
        function(data) 
        {

            //load the array into a test element so we can see what is returned
            $("#test").html( data );

            //set the hour menu
            var startHour = data[0];
            alert( startHour );
            $('#from_hours').val( data[0] );

         });

返回如下数组:["08","00","AM","11","00","AM"]

但由于某种原因,alert( startHour );行会发出警告:[

我做错了什么?

我收到Firebug的错误。

site.com/schedule/ajax/time_menus.php?shift=23 获取http://www.sharingizcaring.com/schedule/ajax/time_menus.php?shift=23

200 OK         296ms jquery-1.3.2.js(3633行) 未捕获的异常:[Exception ...“无法转换JavaScript参数arg 0”nsresult:“0x80570009(NS_ERROR_XPC_BAD_CONVERT_JS)”location:“JS frame :: http://www.sharingizcaring.com/schedule/js/jquery-1.3.2.js :: anonymous :: line 957”data:no] < / p>

2 个答案:

答案 0 :(得分:1)

这是因为data是一个字符串。您需要将其作为数组接收才能获得所需内容。使用$.get的第四个参数来指定类型,在您的情况下为JSON:

$.get('ajax/time_menus.php', { shift: $('#shifts').val() }, function(data) {
    ...
}, "json"); // <--here

// or shorter

$.getJSON('ajax/time_menus.php', { shift: $('#shifts').val() }, function(data) {
    ...
});

答案 1 :(得分:0)

尝试通过将$ .get上的类型设置为“json”来尝试使用json(默认情况下它会返回HTML / XML响应)