jQuery+ajax实现点击左侧菜单,右侧动态加载不同页面的两种方法

效果图如下
在这里插入图片描述

一、完成整体布局(以下只有左侧菜单以及右侧网页)
<div class="content">

            <div class="s-side">
                <ul>
                    <!--这部分是导航栏信息。-->
                    <li class="s-firstItem first">
                        <a href="#">
                            <i class="fa fa-home"></i>
                            <span>首页</span>
                        </a>
                    </li>

                    <li class="first">
                        <div class="d-firstNav s-firstNav clearfix">
                            <i class="fa fa-bars"></i>
                            <span>选课管理</span>
                            <i class="fa fa-caret-right fr "></i>
                        </div>
                        <ul class="d-firstDrop s-firstDrop">
                            <li>
                                <div class="d-secondNav s-secondNav">
                                    <i class="fa fa-minus-square-o"></i>
                                    <span>选课信息管理</span>
                                    <i class="fa fa-caret-right fr"></i>
                                </div>
                                <ul class="d-secondDrop s-secondDrop">
                                    <li class="s-thirdItem">
                                        <a href="#" onclick="loadPage('SubPages/SelectLessonDeal.aspx')">选课信息处理</a>
                                    </li>
                                    <li class="s-thirdItem">
                                        <a href="#" onclick="loadPage('SubPages/SelectLessonSearch.aspx')">选课信息查询</a>
                                    </li>
                                </ul>
                            </li>
                            <li>
                                <div class="d-secondNav s-secondNav">
                                    <i class="fa fa-minus-square-o"></i>
                                    <span>课程信息管理</span>
                                    <i class="fa fa-caret-right fr "></i>
                                </div>
                                <ul class="d-secondDrop s-secondDrop">
                                    <li class="s-thirdItem">
                                        <a href="#" onclick="loadPage('SubPages/LessonInfoDeal.aspx')">课程信息处理</a>
                                    </li>
                                    <li class="s-thirdItem">
                                        <a href="#" onclick="loadPage('SubPages/LessonInfoSearch.aspx')">课程信息查询</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <li class="first">
                        <div class="d-firstNav s-firstNav">
                            <i class="fa fa-bars"></i>
                            <span>用户管理</span>
                            <i class="fa fa-caret-right fr"></i>
                        </div>
                        <ul class="d-firstDrop s-firstDrop">
                            <li>
                                <div class="d-secondNav s-secondNav">
                                    <i class="fa fa-minus-square-o"></i>
                                    <span>用户信息管理</span>
                                    <i class="fa fa-caret-right fr "></i>
                                </div>
                                <ul class="d-secondDrop s-secondDrop">
                                    <li class="s-thirdItem">
                                        <a href="#" onclick="loadPage('SubPages/UserInfoDeal.aspx')">用户信息处理</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
            </div>

            <div id="right">
            </div>
            
</div>
二、利用Ajax完成动态刷新
方法一
<script>
function loadPage(url) {
            $.ajax({
                type: "POST",
                url: url,
                async: true,
                dataType: "html",
                contentType: 'application/json; charset=utf-8',
                success: function (html) {
                    $('#right').html(html);
                    //$('#right').load(url);//load函数同样能实现效果
                }
            });
        }
</script>
方法二
<script>
function loadPage(url) {
           var xmlhttp;
            if (window.XMLHttpRequest) {
                //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
                xmlhttp = new XMLHttpRequest();
            }
            else {
                // IE6, IE5 浏览器执行代码
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    $('#right').load(url);
                }
            }
            xmlhttp.open("GET", url, true);
            xmlhttp.send();
</script>
三、调用函数loadPage,并为其传递参数
<li class="s-thirdItem">
		<a href="#" onclick="loadPage('SubPages/LessonInfoDeal.aspx')">课程信息处理</a>
</li>
<li class="s-thirdItem">
		<a href="#" onclick="loadPage('SubPages/LessonInfoSearch.aspx')">课程信息查询</a>
</li>

添加鼠标点击事件并传入参数地址(相对地址

四、总结

1.关于$.ajax的使用

参数

   type  //数据的提交方式:get和post
   
   url   //数据的提交路径

   async   //是否支持异步,默认是true

   data    //需要提交的数据

   dataType   //服务器返回数据的类型,例如html、xml、Json、String等

   success    //请求成功后的回调函数

   error   //请求失败后的回调函数

2.ajax相比于iframe,布局上ajax更轻巧,用户体验上异步通信速度更快
3.缺点破坏了浏览器后退机制,存在一定安全隐患,浏览器不兼容

  • 13
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
三级级联下拉菜单可以通过Jquery+Ajax实现,以下是一个简单的示例代码: HTML代码: ```html <select id="province"> <option value="">请选择省份</option> <option value="北京">北京</option> <option value="上海">上海</option> <option value="广东">广东</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` Jquery+Ajax代码: ```javascript $(document).ready(function() { // 加载省份列表 $.ajax({ type: "GET", url: "province.php", success: function(data) { $("#province").append(data); } }); // 省份选项改变时,加载城市列表 $("#province").change(function() { var province = $(this).val(); $("#city").html("<option value=''>请选择城市</option>"); $("#district").html("<option value=''>请选择区县</option>"); if (province != "") { $.ajax({ type: "GET", url: "city.php", data: {"province": province}, success: function(data) { $("#city").append(data); } }); } }); // 城市选项改变时,加载区县列表 $("#city").change(function() { var province = $("#province").val(); var city = $(this).val(); $("#district").html("<option value=''>请选择区县</option>"); if (city != "") { $.ajax({ type: "GET", url: "district.php", data: {"province": province, "city": city}, success: function(data) { $("#district").append(data); } }); } }); }); ``` 在省份、城市、区县列表对应的php文件中,需要根据传入的参数返回对应的选项列表。例如,city.php文件可能如下所示: ```php $province = $_GET["province"]; echo "<option value=''>请选择城市</option>"; if ($province == "北京") { echo "<option value='北京市'>北京市</option>"; } else if ($province == "上海") { echo "<option value='上海市'>上海市</option>"; } else if ($province == "广东") { echo "<option value='广州市'>广州市</option>"; echo "<option value='深圳市'>深圳市</option>"; echo "<option value='珠海市'>珠海市</option>"; } ``` 类似地,district.php文件也需要根据传入的参数返回对应的选项列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值