jquery的ajax和php操作(根据学院id来提取每个院的专业名称,并显示在网页上,代码如下)

2025-03-24 21:38:51
推荐回答(2个)
回答1:

我用的框架是cakaphp

html代码


    请选择学院

 
    请选择所需专业

jquery代码


    $(document).ready(function() {
        // ------------------------------
        //add academy
        $.ajax({
            type    : "POST",
            url     : '/Touches/ajaxTest',
            async   : false,
            data    : {},
            dataType : 'json',
            success : function(acadList) {
                var acadHtml = "";
                for (var i in acadList) {
                    acadHtml += ""+acadList[i].acadName+"";
                }
                $("#academy").append(acadHtml);
            },
            error   : function(XMLHttpRequest, textStatus, errorThrown) {
                alert('通信失败:' + errorThrown);
            }
        });
    
        // ------------------------------------
        // add profession
        $('#academy').change(function(){ 
            var value = $(this).val();
            $('#profession option:gt(0)').remove();
            if (value != "") {
                $.ajax({
                    type    : "POST",
                    url     : '/Touches/ajaxTest2',
                    async   : false,
                    data    : {'acadId' : value},
                    dataType : 'json',
                    success : function(porList) {
                        var porHtml = "";
                        for (var i in porList) {
                            porHtml += ""+porList[i]+"";
                        }
                        $("#profession").append(porHtml);
                    },
                    error   : function(XMLHttpRequest, textStatus, errorThrown) {
                        alert('通信失败:' + errorThrown);
                    }
                });
            }
        });
    
    });

php代码

    public function ajaxTest() {
        $rtn = array(
            array(
                "acadId" => "acad1",
                "acadName" => "acad1"
            ),
            array(
                "acadId" => "acad2",
                "acadName" => "acad2",
            ),
            array(
                "acadId" => "acad3",
                "acadName" => "acad3",
            ),
        );
        return new CakeResponse(array('body' => json_encode($rtn)));
    }
    public function ajaxTest2() {
        $p = $this->request->data;
        $rtn = array(
            "acad1" => array(
                "pro1",
                "pro2"
            ),
            "acad2"=> array(
                "pro3",
                "pro4"
            ),
            "acad3" => array(
                "pro5",
                "pro6"
            ),
        );
        return new CakeResponse(array('body' => json_encode($rtn[$p["acadId"]])));
    }

回答2:

第一个select在onselect方法的时候获取value,然后把值用ajax传送到对应的php页面,php或则参数,把对应的json值传回来,前台再用js或则jQuery把json给解析成字符串或则数据,组成html代码给放到第二个select中