如何通过ajax接收,发送和存储json数组

时间:2015-08-27 02:03:12

标签: javascript php ajax json

我想从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'].']}'.',';
 }

}

?>

1 个答案:

答案 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] }