PHP数组到JavaScript数组显示[object,object]
PHP array to JavaScript array shows [object, object]
我一直试图将PHP数组传递给JavaScript数组,但当我读取该JavaScript数组的内容时,它实际上显示[object,object]。
首先,我用PHP从sql语句中生成一个数组,然后将其更改为JSON格式,并将其放入JavaScript数组中。
<?php
while ($row = mysql_fetch_assoc($result)) {
$array[] = $row;
}
mysql_free_result($result);
?>
<script type='text/javascript'>
var js_array =<?php echo json_encode($array);?>;
for(i=0;i<5;i++){
alert(js_array[i]);
}
</script>
这可能是您的$array值是多维关联数组,它导致json编码上的json对象数组。要查看候选阵列,请尝试
for(i=0;i<5;i++){
alert(JSON.stringify(js_array[i]));
}
因为mysql_fetch_assoc返回的每一行都是一个关联数组,基本上是一个散列"key/value",json和javascript认为它是一个对象!
使用mysql_fetch_array代替
mysql_fetch_arrayhttp://au2.php.net/manual/en/function.mysql-fetch-array.php
mysql_fetch_assochttp://php.net/manual/en/function.mysql-fetch-assoc.php
$row作为mysql_query_result已经是一个数组,所以您可以用数组填充$array。这样一来,js_array[0]仍然是一个数组,js将其解释为一个对象。您需要另一个嵌套级别才能获得各个值。
假设您的php数组包含以下内容:
$myArray = array( 'first' => 1, 'second' => 2 );
现在,当您使用json_encode
将其分配给javascript数组时,如:
var js_array = <?php echo json_encode( $myArray ); ?>
相当于:
js_array = { "first" : "1", "second" : "2" }; // output of json_encode
所以基本上,js_array
变量是一个对象。
你可以这样查看它的内容:
console.log( js_array );
相关文章:
- 循环的数组推入在Object容器中具有不同的值
- Join架构验证:Join.object定义数组中的有效键
- JavaScript-从对象数组中输出随机OBJECT
- JavaScript:Association/Object数组中的indexOf
- 比较“;这个“;DOM数组中具有object的对象
- jQuery DataTables:纯数组或Object
- Ember.js with EmberFire Object - 如何使用数组属性
- 给定一个对象数组,创建一个函数,该函数返回一个 Object,该 Object 具有按类型分组的路径数组
- jQuery 数据表 aaData 不接受字符串数组,仅适用于 Object
- Django:返回[Object object]而不是django视图数组
- 将本机数组/对象转换为 Ember.Array/Ember.Object 的最佳实践
- 为什么 Object.keys(Array.prototype) 返回空数组
- Object.observe 并不总是为我在数组上提供正确的删除索引
- 为什么 DOM 的 Object.getOwnPropertyNames 返回空数组
- 在 Javascript 中使用内部数组构建 JSON-Object
- 在 Object.prototype 上为 NodeList 对象实现数组方法是否是一个很好的实践?
- Javascript将Object推送到全局数组会覆盖以前的值
- 从另一个对象创建一个Object数组
- 更改object数组中的数据类型
- 排序[Object Object]数组在Javascript中