使用json_encode()和JSON.parse后,地址数组中输出错误

时间:2013-10-26 12:09:10

标签: javascript php arrays json loops

我有这个PHP从数据库中获取地址列的所有行,我使用json_encode()函数将其转换为字符串并在javascript中JSON.parse但是我没有按预期获得输出< / p>

 <? 

 include('dbcon.php');
 $result = mysql_query("SELECT address FROM markers");

 while ($row = mysql_fetch_assoc($result)) {
 $new_array[] = $row; 
 }
 print_r($new_array);

 $add_js = json_encode( $new_array );

 print_r($add_js);
 ?>

print_r($new_array);我得到两个维度,并在第0个位置获得null。我所做的任何更改都会在第零个位置保持为null。

   var address = [JSON.parse( '<?php echo $add_js ?>' )];

var address应该存储地址数组,但是当我在数组中发出警报时它会提供输出。

[object Object],[object Object],[object Object],[object Object],[object Object]

我想在从数据库中获取地址后存储地址数组

2 个答案:

答案 0 :(得分:2)

所以$new_array是一个关联数组的数组,它在JavaScript中被解码为一个对象数组。如果你想要一个字符串数组,那么你需要在$new_array

中存储字符串
$new_array = array();
while ($row = mysql_fetch_assoc($result)) {
   $new_array[] = $row['address'];   // <-- This line
}

print_r($new_array);

$add_js = json_encode( $new_array );

print_r($add_js);

答案 1 :(得分:1)

我认为这足以满足您的需求:

var address = <?php echo $add_js ?>