通过JSON将PHP数组转换为jquery数组
我有点困惑为什么下面的方法不起作用 get.php通过JSON将PHP数组转换为jquery数组,php,jquery,json,Php,Jquery,Json,我有点困惑为什么下面的方法不起作用 get.php <?php $username="root"; $password="root"; $database="testing"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $name= $_GET['name']; $query="SELECT * FRO
<?php
$username="root";
$password="root";
$database="testing";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$name= $_GET['name'];
$query="SELECT * FROM tableone ";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
$array = array();
$i=0;
while ($i < $num) {
$first=mysql_result($result,$i,"firstname");
$last=mysql_result($result,$i,"lastname");
$date=mysql_result($result,$i,"date");
$ID=mysql_result($result,$i,"id");
$array[] = $first;
$i++;
}
echo json_encode($array);
?>
当我运行以下命令时,我会得到一个如下所示的名称列表
["James","Lydia","John"]
但是,当我试图挑选出一个条目,比如arr[2],我得到的只是一个“J”,为什么元素不像我期望的那样是单个条目呢
有人能帮忙吗
谢谢
更新
$.get("get.php", function(data){
arr = $.parseJSON(data);
alert(arr);
}, "json");
似乎没有返回结果?
数据
包含一个JSON字符串,因此arr[2]
将是字符串中的第三个字符。您需要使用$.parseJSON(数据)
您的PHP声称JSON是HTML。您需要显式地说它是JSON,以便让jQuery自动处理它
header("Content-type: application/json");
在php中通过
header('Content-type:application/json')发送json头代码>因此jQuery应该自动解码json数据。您不能将数据值赋给数组
$.get("get.php", function(data){
alert(data[2]);
}, "json");
数据似乎还没有被解析为JavaScript数组,arr
仍然是一个字符串。否则,alert(arr)
将输出James,Lydia,John
不做任何事情,因为之后您将为该变量分配另一个值。所以问题是,为什么传递数据类型参数不起作用?在本例中,我会这样使用它吗<代码>arr=($.parseJSON(数据))代码>是的,没错。不过,不需要包装器:arr=$.parseJSON(数据)代码>嗯,它似乎不起作用,你能看看问题中更新的代码吗?如果提供了数据类型参数,它不应该起作用吗?
$.get("get.php", function(data){
alert(data[2]);
}, "json");