2011-09-09 248 views
1

我想用.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); 

这里的值来获得JSON数组的值就是我做的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 
    ) 

+0

只要做一个console.log(数据),并看看你的数据对象的结构。 –

+0

有什么问题? – arnaud576875

+0

这可能是值得剥离你的例子只有$ .each调用与分配给结果变量的对象的JavaScript数组。你可以检查你的php页面返回的内容,看看应该看什么。那时,它纯粹是一个JavaScript问题。至于要放入$ .each函数的内容,您可以尝试result [index] .orderNo。 –

回答

2

如果indexv在您each()循环返回undefined值,则result的值不能什么你认为它是。在这里取得进展的唯一途径是让你看看result的实际外观。

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

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

+0

它在我看到json,thanx的响应时有效。 – palAlaa