[英]Passing PHP array to javascript using json_encode giving errors?
[英]Passing PHP Array to Javascript with Json_encode
我试图将php数组作为对象传递给javascript变量,以便在同一页面/文件的google map中使用。 在javascript中测试数组时,我无法发出警报。
PHP
while( $row = $query->fetch_assoc() ){
$street_address = $row['street_address'];
$zip = $row['zip'];
$state = $row['state'];
$lat = $row['lat'];
$lng = $row['lng'];
$test = $row['sellerDB_test'];
$firstName = $row['first_name'];
$lastName = $row['last_name'];
$email = $row['email'];
$phone = $row['phone'];
/* Each row is added as a new array */
$locations = array( 'streetAddress'=>$street_address, 'state'=>$state, 'zip'=>$zip, 'lat'=>$lat, 'lng'=>$lng, 'test'=>$test, 'first name'=>$firstName, 'last name'=>$lastName, 'email'=>$email, 'phone'=>$phone);
JS
var map;
var Markers = {};
var infowindow;
var locations = '<?php echo json_encode($locations); ?>';
var location = JSON.parse(loactions);
alert(locations[0]);
我收到此错误
未捕获的ReferenceError:在帐户:299上未定义活动
@鬼是正确的。 我没有注意到$ locations在while
循环内。 因此,您应该定义$locations = [];
在while循环之前。 然后继续从while循环添加多个记录。 因此,更新后的代码应类似于:
$locations = [];
while( $row = $query->fetch_assoc() ){
$street_address = $row['street_address'];
$zip = $row['zip'];
$state = $row['state'];
$lat = $row['lat'];
$lng = $row['lng'];
$test = $row['sellerDB_test'];
$firstName = $row['first_name'];
$lastName = $row['last_name'];
$email = $row['email'];
$phone = $row['phone'];
/* Each row is added as a new array [] */
$locations[] = array( 'streetAddress'=>$street_address, 'state'=>$state, 'zip'=>$zip, 'lat'=>$lat, 'lng'=>$lng, 'test'=>$test, 'first name'=>$firstName, 'last name'=>$lastName, 'email'=>$email, 'phone'=>$phone);
}
然后,您应该放入JS代码段。
并像这样使用它:
JS cpde:
var map;
var Markers = {};
var infowindow;
var locations = <?php echo json_encode($locations); ?>;
var location = JSON.parse(loactions);
alert(location.streetAddress);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.