我有一个页面,我必须重新加载纬度和经度来刷新谷歌地图。我这样做是使用ajax,JS函数是这样的:
function refreshMap(idCamiones)
{
$.ajax({
type: "GET",
async: false,
url: "refresh.php",
data: "idCamiones="+idCamiones,
contentType: "application/x-www-form-urlencoded",
success : function(text)
{
refresh = text;
}
});
//Borramos todos los marcadores actuales
for (i in markersArray) {markersArray[i].setMap(null);}
markersArray.length=0;
//generamos un array con las latitudes en pares y las longitudes en nones.
posArray=refresh.split(",");
for(i=0;i<=posArray.length;i=i+2)
{
addMarker(2,posArray[i],posArray[i+1]);
}
}
refresh
是一个全局JS变量,用于存储PHP文件的响应。如果我使用浏览器调用PHP文件数据是完整的,我就会得到(posArrray[0],..,posArray[n])
但如果我使用JS函数调用PHP,JS变量只保存(posArray[n-1],posArray[n])
和所有其他坐标只是在JS变量中缺少我的PHP脚本运行良好。
<?php
include_once("conexion.php");
$idCamiones=$_GET['idCamiones'];
$reponse='';
$query="SELECT * from datos INNER JOIN dbo.eventos ON eventos.codigo=datos.codigo where id IN (
Select max(id) from datos where camion in (".$idCamiones.") group by serie) order by serie";
$bD=new COM("ADODB.Recordset");
$bD->Open($query,$conn);
$busData=fetch_assoc($bD);
$bD->close();
for($i=0;$i<sizeof($busData);$i++)
{
$response.=$busData[$i]['latitud'].",".$busData[$i]['longitud'].",";
}
echo $response;
&GT;
我不知道我是否错误地在php文件中返回$ response,我也尝试使用refresh=$.ajax({}).responseText;
并得到相同的结果。
答案 0 :(得分:1)
问题解决了,谢谢,问题是在函数refreshMap(9,15,17)中发送的参数中,PHP脚本将9作为唯一值,所以我只是添加引号将参数作为字符串发送,并且诀窍,谢谢你们我忘了firebug我只是使用chrome控制台。
答案 1 :(得分:0)
如果你发出警告(文字)那会给出正确的信息吗? Firebug中的控制台怎么样,当你看到那里的响应时,它是正确的还是不正确的?
我有这样的地图,但我没有遇到这个问题。我从未见过ajax查询发送的次数少于我在浏览器中看到的,除非是xml破坏的问题。
为什么使用该特定内容类型?我只使用过XML或HTML。
答案 2 :(得分:0)
直接在浏览器的地址栏中调用您的AJAX网址+参数,看看它的响应情况。
如果你有FF和Firebug,你可以使用NET - &gt; XHR选项卡直接检查请求和响应。