0

以下が機能しない理由が少し混乱しています。

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

結果が返されないようですか?

4

4 に答える 4

4

dataJSON の文字列が含まれているため、文字列arr[2]の 3 番目の文字になります。を使用する必要があります$.parseJSON(data)

于 2012-04-13T15:07:22.390 に答える
3

あなたの PHP は、JSON が HTML であると主張しています。jQueryがJSONとして自動的に処理するようにするには、JSONであると明示的に言う必要があります。

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

配列にデータ値を与えることはできません。

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

header('Content-type: application/json');jQueryがjsonデータを自動的にデコードするように、phpでjsonヘッダーを送信します。

于 2012-04-13T15:11:00.467 に答える