2012-09-07 45 views
0

我正在使用codeigniter。这里是我的php代码查询obj数组中的结果,然后我如何将它们传递给js。我想在谷歌使用其映射Php变量obj到js

<?php 
    foreach ($query->result() as $row) 
    { 
     $lat = $row->geo_lat; 
     $lng = $row->geo_lng; 
     $pic = $row->picture; 
     echo $lat; 
     echo $lng; 
     echo "<img src=\"" . base_url() . $pic . "\"/><br />"; 
     //echo json_encode($row); 
     //echo "<pre>"; 
     //echo print_r($row); 
    } 
?> 

JS代码

var locations = ?????????; 
var marker, i; 
    for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][0], locations[i][1]), 
     map: map, 
     draggable: true 
    }); 
    } 
+0

感谢所有,我会尝试 – vzhen

回答

0

您可以用PHP发出的Javascript ...你为什么不只是JSON编码所有的结果,并将其存储在您的locations变量,就像这样:

<?php 
    echo("<script>"); 
    echo(" var locations = " + json_encode($query->result()) + ";"); 
    echo("</script>"); 
?> 
0

你需要使用AJAX 有你的JS代码,要求PHP页面。 PHP页面将处理请求,并以JSON格式返回适当的数据(对结果对象使用json_encode())。

3

您可以在有或没有ajax的情况下使用它。

可以使用json_encode只是有整体result JSON格式()_and它添加到js的变量,如:

<script> 
    var js_obj=<?php echo json_encode($result); ?> 
    /* now you can access this json object that is in js_obj variable and acccess any thing you want using dot operator.*/ 
</script> 

你的问题是没有太大的清楚,所以,如果你问一些不同的感觉,然后请清楚,以便我可以专注于实际问题。

+0

你的代码正在对我工作。但是,如果我改变为此,它不起作用。 在我的codeigniter控制器中。 $ json = json_encode($ data ['query'] - > result()); 然后在我的外部js文件中。我使用jQuery .ajax来访问它 alert(json [0] .foo); – vzhen

+0

@vzhen如果你想通过ajax使用它,然后从PHP回声,然后从你的.ajax访问 – Hafiz