3

スクリプトphpから生成された配列を取得する必要があります。データベース内のユーザーごとに緯度と経度があります。私はこのコード(file.php)でdbから値を取得します:

$query = "SELECT Latitude, Longitude FROM USERS";
$result=mysql_query($query);
$array=array();
while ($data = mysql_fetch_array($result)) {
    $array[]=$data['Latitude'];
    $array[]=$data['Longitude'];
}

echo $array;

そして私はこのコードでajaxで呼び出します:

$.post('./file.php',
     function( result ){    
         alert(result);
     });

しかし、スクリプトphpで配列が正しい場合でも(array [25]をエコーすると、正しい値を取得します)、Javascriptでは「Undefined」を取得します。どうすれば正しい方法で配列を取得できますか?ありがとう!

編集:json_encode($ array);でエンコードした後 phpとjavascriptのJSON.parse(result)が機能していないようです。コンソールに配列がありますが、その値にアクセスできません。(Array [0]は私に「未定義」を与えました)。

4

3 に答える 3

20

これを使って

echo json_encode($array);

サーバー側

var arr=JSON.parse(result);

クライアント側

于 2013-01-23T13:29:24.583 に答える
1

Ruslan Polutsyganが述べたように、あなたは使用することができます

echo json_encode($array);

PHP側で。

Javascript-Sideでは、DataTypeを$ .post()-Functionに追加するだけです。

$.post(
  './file.php',
  function( result ){    
    console.log(result);
  },
  'json'
);

そしてresult-Parameterは解析されたJSON-Dataです。

PHPスクリプトで正しいContent-Typeを設定することもできます。次に、jQueryはPHPスクリプトから返されたJSONデータを自動的に解析する必要があります。

header('Content-type: application/json');


http://api.jquery.com/jQuery.post/http://de3.php.net/json_encodeを参照して
ください

于 2013-01-23T13:35:15.060 に答える
0

php配列をjsonに変換する必要があります。試してみてください。

echo json_encode($array);

jQueryは、返されるjsonを確認し、そこからjavascriptオブジェクトを自動的に作成できる必要があります。

$.post('./file.php', function(result)
{    
     $.each(result, function()
     {
         console.log(this.Latitude + ":" + this.Longitude);
     });
});
于 2013-01-23T13:34:19.490 に答える