[英]using an array from PHP in a JS file
我的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中的数组,并将标记放置在我在自己网站上的google map上。
您期望有效的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
}
}
})
最简单的解决方案是使用javascript变量插入新的脚本标签,然后使用json_encode将php数组分配给该变量。 JSON(JavaScript对象表示法)是一种文本格式,用于在编程语言之间进行数据交换。 因为JSON是基于JavaScript的,所以在客户端不需要解码。
echo '<script>var myarray = '.json_encode($LocationArray).'</script>';
理想情况下,您将使用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]);
}
}
});
我能想到的最简单的方法是在链接到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>"
那还没有经过调试或测试,但是应该可以给你这个想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.