Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过JSON将PHP数组转换为jquery数组_Php_Jquery_Json - Fatal编程技术网

通过JSON将PHP数组转换为jquery数组

通过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

我有点困惑为什么下面的方法不起作用

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 * 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");