Jquery ajax响应文本未完成

时间:2011-02-11 20:38:50

标签: php javascript jquery ajax maps

我有一个页面,我必须重新加载纬度和经度来刷新谷歌地图。我这样做是使用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;并得到相同的结果。

3 个答案:

答案 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选项卡直接检查请求和响应。