0

我试图将此查询的结果作为 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: 变量计数 = ; console.log(tally);// Object { Arthritis="26"} 应该是字符串?

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

1 回答 1

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 . "]"; 
于 2013-08-05T03:02:54.630 回答