我想从ajax调用中获取一个json数组并将其存储在一个数组中。我尝试了这段代码,但它没有用。警报显示字符串 {“value”:[1]},{“value”:[2]} 。我需要转换此字符串在JSON数组中并存储在myData中。对于responseJSON还是其他任何问题都有问题吗? Plz帮助
拨打电话
setInterval(function showUser(str) {
str="1";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
var myData=(xmlhttp.responseJSON);
window.alert(myData);
}
xmlhttp.open("GET","new.php?q="+str,true);
xmlhttp.send();
}, 1000)
这是 new.php
的代码
<?php
$conn =mysql_connect("localhost","root","") or die ("we couldn't connect!");
mysql_select_db("webauth");
$rs = mysql_query("SELECT * FROM test") or die(mysql_error());
while($row = mysql_fetch_array($rs))
{
echo '"{values":['.$row['value'].']}'.',';
}
}
?>
答案 0 :(得分:1)
您没有正确返回JSON数组,因为数组元素周围没有[ ]
。您应该构建一个PHP数组并在其上调用json_encode
。
$result = array('values' => array());
while ($row = mysql_fetch_array($rs)) {
$result['values'][] = $row['value'];
}
echo json_encode($result);
当您提醒myData
时,它应显示
{ values: [1, 2] }