使用$ .each()将Json值赋给变量

时间:2013-08-05 02:38:18

标签: json each

我试图将此查询的结果作为Json字符串传递给Jquery,以便我可以将值赋给JQuery变量。实际上会有不止一个键:值对但我为了简单起见用一对来说明我的问题。我能够console.log索引和值但是当我尝试将值赋给变量时,我得到一个“未定义”的消息。我在其他地方成功完成了这项工作,我不确定我在这里缺少什么:

$query = (
"SELECT MedCondPrimary, Count(MedCondPrimary) as Count 
FROM Comments 
WHERE MedCondPrimary='Arthritis'");

$result = mysqli_query($dbc, $query);

WHILE($rows = mysqli_fetch_array($result)) {

$medcond = $rows['MedCondPrimary'];
$array3[$medcond] = $rows['Count'];
};

$json_count=json_encode($array3);
    echo $json_count; // {"Arthritis":"26"}

JQ:     var tally =;     console.log(tally); //对象{Arthritis =“26”}应该是一个字符串?

$.each(tally, function(index, value) {
  console.log(index+":"+value);     //Arthritis:26
  var arthritis = value.Arthritis;
  console.log(arthritis);          //undefined
    });

1 个答案:

答案 0 :(得分:1)

您的jQuery代码应该使用each()而不是$.each()

$( tally ).each(function( index, obj ) {
  console.log( index + ":" + obj.Arthritis); // Arthritis:26
  var arthritis = obj.Arthritis;
  console.log( arthritis ); // 26
});

each()传递对象,而$.each()传递对象的属性 - 值对。您在另一个地方的$.each()必须正常工作,因为您传递了一个数组,如下所示:

// iterating an array
$.each( [{Arthritis:26}], function( index, obj) {
    console.log( obj.Arthritis ); // 26
});

PHP编辑

$json_count=json_encode($array3);
echo "[" . $json_count . "]";