2 y880204 y880204 于 2015.05.26 20:11 提问

php dwt 写的jquery不执行回调,html可以执行回调,请大神们指教。

模版文件dwt 写了如下js代码,为什么没有回调,写在html 里就可以回调

 function getVal() {
        $.getJSON("bus_sel.php", {

            sf_id : $("#sf_id").val()
        }, function(json) {


            alert(1111);
            var ds_id = $("#ds_id");

            $.each(json, function(index, array) {
            alert("dddddd");
                var option = "<option value='"+array['bus_price']+"'>"
                        + array['bus_terminal'] + "</option>";
                ds_id.append(option);
            });
        });
    }
    //下面是页面加载时自动执行一次getVal()函数 
    $().ready(function() {
        getVal();
        $("#sf_id").change(function() {//省份部分有变动时,执行getVal()函数 
            getVal();
            //$("option", ds_id).remove(); //清空原有的选项,也可使用 ds_id.empty(); 
        });
    });


请教各位大神指教

1个回答

showbo
showbo   Ds   Rxr 2015.05.27 11:19
已采纳

你jquery框架导入了没有,而且不要用getJSON,要不你的php发生错误是不执行回调的。要用$.ajax来替代

而且多用下浏览器开发工具,看报错了还是什么

     function getVal() {
        $.ajax({ url: 'bus_sel.php', cache: false, dataType: 'JSON', data: { sf_id: $("#sf_id").val() }, success: function (json) {
            alert(1111);
            var ds_id = $("#ds_id");
            $.each(json, function (index, array) {
                alert("dddddd");
                var option = "<option value='" + array['bus_price'] + "'>"
                        + array['bus_terminal'] + "</option>";
                ds_id.append(option);
            });
        }, error: function (xhr) {//增加error回调看什么错误,注意返回标准json格式字符串,要不也会执行到error回调即使php正常执行
            alert('php页面报错:' + xhr.responseText);
        }
        });


    }
y880204
y880204 感谢,问题解决了,重写jquery与新导入的jquery冲突!
2 年多之前 回复
showbo
showbo 回复y880204: 什么版本的jquery。。responseText是服务器返回的内容,不可能是undefined吧,前面的php页面报错没有了?
2 年多之前 回复
y880204
y880204 刚刚使用你的代码,直接跳转到error,undefined
2 年多之前 回复
y880204
y880204 已经导入框架,做demo可以异步加载,把他放到dwt 模版里就没反映了,代码也没报错!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片