我的index.php中有一个由foreach创建的数组:
foreach ($events as $eventkey =>$event)
{
echo "<li class='desktop-2 tablet-1 mobile-1'>".$event->title."<span class='eventLetter'>A</span><br/><span class='eventLocation'>".$event->city."</span></li>";
$LocationArray[]= $event->latlng;
}
json_encode($LocationArray);
现在我想在我的javascript中使用这个数组(用不同的文件编写..)。但我可以这样做吗?如果是的话,怎么样? (我是php的新手,我对AJAX的东西很苛刻等等。我一直在这里寻找其他网站,但我找不到解决办法。)
计划是能够在我的javascript中循环遍历数组,并将标记放在我网站上的谷歌地图上。
答案 0 :(得分:0)
你期待有效的json输出吗?
<?php
foreach ($events as $eventkey =>$event)
{
echo "<li class='desktop-2 tablet-1 mobile-1'>".$event->title."<span class='eventLetter'>A</span><br/><span class='eventLocation'>".$event->city."</span></li>";// remove this thing or maybe place it in a variable. do not echo it.
$LocationArray[]= $event->latlng;
}
echo json_encode($LocationArray);
你脚本上的
$.ajax({
url:"",
success: function(data){
var json = jQuery.parseJSON( data );
for (var i = 0; i < json.length; i++) {
alert(json[i]);
//Do something
}
}
})
答案 1 :(得分:0)
最简单的解决方案是插入带有javascript变量的新脚本标记,然后使用json_encode将php数组分配给该变量。 JSON(JavaScript Object Notation)是一种用于编程语言之间数据交换的文本格式。因为JSON基于客户端不需要JavaScript解码。
echo '<script>var myarray = '.json_encode($LocationArray).'</script>';
答案 2 :(得分:0)
理想情况下,您可以使用AJAX并获取json_encode($ LocationArray)的输出...
所以你的最后一行必须是
echo json_encode($LocationArray);
一旦启动了AJAX调用的JS函数将其恢复,您就可以将其转换为数组并循环它。 (期待你使用jQuery,代码看起来像这样......)
$.ajax({
url: 'index.php',
success: function(response) {
var resData = $.parseJSON(response);
for (var i = 0; i < resData.length; i++)
{
alert(resData[i]);
}
}
});
答案 3 :(得分:0)
我能想到的最简单的方法是在链接到JS文件之前进行回声。
echo"<script type='text/javascript'>\n var array={";
for($i=0;$i<sizeof($array);$i++){
echo "'".$item."'";
if($i<(sizeof($array)-1)){
echo",";
}
}
echo"};\n</script>"
尚未经过调试或测试,但它应该给你一个想法。