2

jquery で getJSON メソッドを使用して動的配列を取得しようとしています。動的配列をエンコードしようとすると、「不正な」オフセット エラーが発生します。サーバー側のコードは次のとおりです(クエリを削除すると正常に実行されるため、javascriptが正しいと確信しています):

<?php 
session_start();
require_once "database.php";
db_connect();
require_once "auth.php";
$current_user = current_user();
include_once("config.php");

$westcoast_id = $_GET['westcoast_id'];

$westcoast_array = array();


 $query = "SELECT city, state FROM users GROUP BY city";
 $result = mysql_query($query) or die(mysql_error());
 while($row = mysql_fetch_array($result)){

if($row['city'] != '' && $row['state'] != '') {
    $westcoast_array[$row] = "location:".$row['city'].", ".$row['state'].", stopover:true";


   }

}

$data = array($westcoast_id, $westcoast_array);

echo json_encode($data);


?>

不正なオフセットは次の行を参照しています:

$westcoast_array[$row] = "location:".$row['city'].", ".$row['state'].", stopover:true";

問題が何であるかわかりません。ご協力ありがとうございました!

4

2 に答える 2

1
 $westcoast_array[$row] = [...]

間違っている。(配列をキーとして使用することはできません)

単純に使用します:

$westcoast_array[] = [...]
于 2013-03-01T21:39:14.237 に答える
0

使用してみてください:

if($row['city'] != '' && $row['state'] != '') {
    $westcoast_array[] = "location:".$row['city'].", ".$row['state'].", stopover:true";
}

また

if($row['city'] != '' && $row['state'] != '') {
    $westcoast_array[$row['state']][$row['city']] = "location:".$row['city'].", ".$row['state'].", stopover:true";
}

そしてvar_dump($westcoast_array)、構造を見るために使用できます。

于 2013-03-01T21:45:10.847 に答える