我试图将此查询的结果作为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
});
答案 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 . "]";