0

我有点困惑为什么以下不起作用。

获取.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");

似乎没有返回结果?

4

4 回答 4

4

data包含 JSON 的字符串,因此arr[2]将是字符串中的第三个字符。你需要使用$.parseJSON(data).

于 2012-04-13T15:07:22.390 回答
3

您的 PHP 声称 JSON 是 HTML。您需要明确地说它是 JSON 才能让 jQuery 自动处理它。

header("Content-type: application/json");
于 2012-04-13T15:08:20.377 回答
0

通过在 php 中发送 json 标头,header('Content-type: application/json');以便 jQuery 自动解码您的 json 数据。

于 2012-04-13T15:11:00.467 回答
0

您不能将数据值赋予数组。

 $.get("get.php", function(data){
     alert(data[2]);
}, "json");
于 2012-04-13T15:27:28.653 回答