【发布时间】:2012-04-13 15:05:18
【问题描述】:
我有点困惑,为什么以下内容不起作用。
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);
?>
jQuery
var arr = new Array();
$.get("get.php", function(data){
arr = data;
alert(arr);
}, "json");
当我运行以下命令时,我会得到一个看起来像这样的名称列表
["James","Lydia","John"]
但是当我尝试挑出诸如 arr[2] 之类的条目时,我只给出了一个“J”,为什么这些元素会像我所期望的那样不是单个条目?
有人可以帮忙吗?
谢谢!
更新
$.get("get.php", function(data){
arr = $.parseJSON(data);
alert(arr);
}, "json");
好像没有返回结果?
【问题讨论】:
-
数据似乎还没有解析为 JavaScript 数组,
arr仍然是一个字符串。否则,alert(arr)将输出James, Lydia, John。 -
附带说明 -
var arr = new Array();没有做任何事情,因为无论如何你都会为该变量分配另一个值。