0

奇妙な問題があります。

対応する番号[0]、[1]などを使用してjsonコードにアクセスしようとすると、オブジェクトの最初の文字を取得するだけです。

私のコードの最初:

test2.php

if(isset($_POST['getCustomersArray'])){
$runQuery = mysql_query($Query) or
        die("SQL: $Query)<br />".mysql_error()); 
$numrows = mysql_num_rows($runQuery); 
$array = array(array());

for($i = 0;$i <= 2; $i++){
    $row = mysql_fetch_array($runQuery);
    $array[$i]['namn'] = $row['fornamn'];

}
    print json_encode($array);
}

scriptfile.js

$.ajax({
    type:"POST",
    url: "test2.php",
    data: "getCustomersArray=true",
    datatype: "JSON",
    cache: false,
    success: function(json) {
            console.log(json[0]);
     }
});

結果(console.log(json [0])から):

[

console.log(json)からの結果:

[{"namn":"the first name"},{"namn":"The secound name"},{"namn":"the third name"}]

なぜ角括弧がそこにあるのかわかりませんが、多分それらはあるべきですか?

私はしばらくの間この問題に悩まされてきました、そしてそれが何かばかげていると確信しています。助けてください。

4

3 に答える 3

6

AJAX設定に誤ったオプションがあります。

datatype: "json",

そのはず:

dataType: "json",
于 2012-11-08T16:28:00.630 に答える
1
datatype: "JSON",

察するに

dataType: "json",  // json in lowercase and T has to be captalized
于 2012-11-08T16:30:21.233 に答える
1

次のコードがあることを確認してください。

if(isset($_POST['getCustomersArray'])){
$runQuery = mysql_query($Query) or
    die("SQL: $Query)<br />".mysql_error()); 
$numrows = mysql_num_rows($runQuery); 
$array = array(array());

for($i = 0;$i <= 2; $i++){
    $row = mysql_fetch_array($runQuery);
    $array[$i]['namn'] = $row['fornamn'];
}
header("Content-Type: application/json; charset=UTF-8");
print json_encode($array);
}

ここでは、content-typeをapplication / jsonに設定し、正しい文字セットを設定して、ブラウザー間の問題を回避する必要があります。私のウェブサイトから次のチュートリアルを見てください。これは、これらすべてと、おそらくコードのいくつかの改善をカバーしているはずです。PHPjQuery検索チュートリアル-JSONオブジェクトを適切な方法で使用する

お役に立てれば :)

于 2012-11-08T16:32:22.520 に答える