首页 新闻 搜索 专区 学院

一个诡异的jquery ajax get提交问题

0
悬赏园豆:5 [已关闭问题] 解决于 2012-12-16 01:22

一个选择城市的控件,当点了某个城市之后,通过ajax把选中城市的id提交到服务器,查询出该城市的一些信息。

js代码:

function getSelectedCityInfo(id,name){
//    window.location.href="index.php?cid="+id+"#templink";
    alert(id);
    alert(name);
    $.ajax({
        type: "GET",
        url: "index.php",
        data: { cid: id }
    });
    $("#cityselect").html(name);
    $.fancybox.close();
}

我用window.location,把当前cityid通过URL传给服务器,在后台用$_GET['cid']完全可以。

就是用ajax请求的时候出问题,好像就没有提交上去,但是用firebug看请求的地址和参数却也完全正确。

后台PHP脚本:

if(isset($_GET["cid"])){
    echo "1";
    $static["selectedCityInfo"]=getRateByCityID($_GET["cid"]);
}

给静态全局变量$static赋值这句根本就没执行,导致我前台在选择了城市之后接受不到任何数据。

但是不用ajax的方式就可以。不知道问题是出在了哪里?

问题补充:

又仔细找了一遍问题所在:

发现后台返回的已经有了我想要的城市信息,那现在问题就是为什么在页面上显示不出来,

我用直接的url请求就可以在页面上显示(smarty模版引擎)。

if(isset($_GET["cid"])){
    echo $_GET["cid"];
    $static["selectedCityInfo"]=getRateByCityID($_GET["cid"]);
}

firebug显示请求后相应的html确实有打印出来的城市id(下图中的“21”就是提交到后台的城市id),而且在页面下边需要城市信息的地方也出现了正确的数据,但这只是在firebug里看到的。页面上没显示。

其小本的主页 其小本 | 初学一级 | 园豆:37
提问于:2012-11-15 00:55
< >
分享
其他回答(2)
0

你用$.ajax函数中的Success方法中获取返回信息呀

$.ajax({
        type: "GET",
        url: "index.php",
        data: { cid: id },
function (data) {
alert(data);
} });
田林九村 | 园豆:2367 (老鸟四级) | 2012-11-15 08:05
0

我的习惯是只要采用get提交就把缓存关了,或者加时间戳,要不出现缓存的几率很大

oppoic | 园豆:560 (小虾三级) | 2012-11-15 08:31
0

$.ajax({cache:false *****});

飞来飞去 | 园豆:2057 (老鸟四级) | 2012-11-15 09:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册