通过json数组迭代

时间:2011-09-09 19:39:50

标签: php jquery json

我想使用.each

获取json数组的值

这里我设置数组的值

$allRecords= array();
    while($row = mysql_fetch_array($result)){
        $oneRecord[] = array("orderNo"=>$row['order_no'],"orderDate"=>$row['order_date'],"orderTime"=>$row['order_Time']);
        array_push(&$allRecords,$oneRecord);
    }

    echo json_encode($allRecords);

这是我在jquery中做的事情

$.post("controllers/OrderViewer.controller.php?action=viewOrders",param,function(result){
 // var data = JSON.parse(result); // I tried this but doesn't work
 // var data= eval(result);  // I tried this but doesn't work

    $.each(result,function(index,v){

            alert(index +" "+ v.orderNo);  // return undefined for values
            // what should I write here to reach array element

    });
    });

我应该写什么。每次获取数组元素

这是响应数据结构

Array
(
[0] => Array
    (
        [orderNo] => 1
        [orderDate] => 2011-02-12
        [orderTime] => 00:00:10
    )

[1] => Array
    (
        [orderNo] => 2
        [orderDate] => 2011-02-12
        [orderTime] => 11:10:00
    )

1 个答案:

答案 0 :(得分:2)

如果indexveach()循环中返回未定义的值,则result的值不得超出您的想象。在这里取得进展的唯一方法是让你看到result实际上是什么样的。

它实际上是一个阵列吗?如果是这样,阵列中的项目是什么?他们是你期望的吗?如果它不是数组,它是什么?

查看result的最佳方法是在each()循环的开头设置断点,并在调试器中查看result。 Chrome和Safari附带内置调试程序,需要15分钟来学习如何设置断点,然后在变量达到该断点时检查它们的值。 Firefox有一个免费的附加组件(Firebug),它也提供了一个调试器。 IE可以使用调试器从MS下载工具。