【发布时间】:2013-10-26 12:09:10
【问题描述】:
我有这个 PHP,它正在从数据库中获取地址列的所有行,我使用 json_encode() 函数将其转换为字符串,并在 javascript 中将其转换为 JSON.parse,但我没有得到预期的输出
<?
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);,我得到二维数组并在第零个位置得到null。我所做的任何更改都会在第零个位置继续给出 null 。
var address = [JSON.parse( '<?php echo $add_js ?>' )];
var address 应该存储地址数组,但是当我在数组中发出警报时它会给出输出。
[object Object],[object Object],[object Object],[object Object],[object Object]
我想在从数据库中获取地址后存储地址数组
【问题讨论】:
-
能否请您发布您的 PHP 生成的结果?
-
首先通过在代码开头添加 $new_array = arary() 来初始化 $new_array。那么alert就不会显示json字符串了,它是一个对象,而不是使用alert()进行调试,添加console.log(address);并检查您的浏览器控制台 (f11)。
-
该对象数组有什么问题,您期望什么(
[object Object]对于从警报中得到字符串化的对象是可以的)?您确定需要JSON.parse表达式周围的括号(数组文字)吗?此外,您不需要使用字符串和显式解析,您可以简单地将 JSON 作为 javascript 文字回显到代码中。 -
php 的结果是 ' Array ( [0] => Array ( [address] => Janak Puri, New Delhi, India ) [1] => Array ( [address] => Sector 63, Noida ) [2] => Array ( [address] => Dwarka, New Delhi, India ) [3] => Array ( [address] => Laxmi Nagar,new delhi ) [4] => Array ( [address] = > Gurgaon, Haryana, India ) ) [{"address":"Janak Puri, New Delhi, India"},{"address":"Sector 63, Noida"},{"address":"Dwarka, New Delhi, India "},{"address":"Laxmi Nagar,new delhi"},{"address":"Gurgaon, Haryana, India"}] ' 这些是来自临时数据库的结果。
-
你为什么不只使用
var address = <?php echo json_encode($some_variable);?>;?
标签: javascript php arrays json loops