PHP+ajax实现二级联动菜单功能示例


Posted in PHP onAugust 10, 2018

本文实例讲述了PHP+ajax实现二级联动菜单功能。分享给大家供大家参考,具体如下:

如何实现二级联动

工作原理

二级联动在开发中是比较常见的一个技术点,它主要运用了JS的局部刷新技术ajax,不同于一般页面全局刷新,它只会刷新我们需要改变值的地方,我们首先看下它的工作流程。

  • 第一步:我们会向后台发送一个请求
  • 第二步:后台接受请求后,会返回给我们一个值
  • 第三步:将值用JS呈现在页面中

HTML代码

<html>
<head>
<title>3water.com 二级联动</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf8">
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<style>
#area-box{width:500px;height:400px;margin:0 auto;border:0px solid #dddddd;text-align:center;}
.area-select{width:200px;height:30px;margin-top:30px;margin-left:30px;}
</style>
<head>
<body>
  <div id="area-box">
    <select class="area-select" id='address'>
      <option value="0">请选择省份</option>
      <option value="1">四川</option>
      <option value="2">河北</option>
      <option value="3">湖南</option>
    </select>
    <select class="area-select" id="city">
      <option>请选择城市</option>
    </select>
  </div>
  <script>
  $(function(){
    //初始化数据
    var url = 'address.php'; //后台地址
    $("#address").change(function(){ //监听下拉列表的change事件
      var address = $(this).val(); //获取下拉列表选中的值
      //发送一个post请求
      $.ajax({
        type:'post',
        url:url,
        data:{key:address},
        dataType:'json',
        success:function(data){ //请求成功回调函数
          var status = data.status; //获取返回值
          var address = data.data;
          if(status == 200){ //判断状态码,200为成功
            var option = '';
            for(var i=0;i<address.length;i++){ //循环获取返回值,并组装成html代码
              option +='<option>'+address[i]+'</option>';
            }
          }else{
            var option = '<option>请选择城市</option>'; //默认值
          }
          $("#city").html(option); //js刷新第二个下拉框的值
        },
      });
    });
  });
  </script>
</body>

PHP代码

<?php
  $key = $_POST['key']; //获取值
  $address[1] = array('成都','绵阳','德阳');
  $address[2] = array('石家庄','唐山','秦皇岛');
  $address[3] = array('长沙','株洲','湘潭');
  if(!empty($address[$key])){ //有值,组装数据
    $result['status'] = 200;
    $result['data'] = $address[$key];
  }else{ //无值,返回状态码220
    $result['status'] = 220;
  }
  echo json_encode($result); //返回JSON数据
?>

运行效果:

PHP+ajax实现二级联动菜单功能示例

其实三级联动和二级联动的原理都是一样的,只是在其基础上在重复一次而已

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中显示格式化的用户输入
Oct 09 PHP
将OICQ数据转成MYSQL数据
Oct 09 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
Jun 08 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
PHP学习笔记(二):变量详解
Apr 17 PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 #PHP
PHP实现的服务器一致性hash分布算法示例
Aug 09 #PHP
PHP检查端口是否可以被绑定的方法示例
Aug 09 #PHP
php对象工厂类完整示例
Aug 09 #PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 #PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 #PHP
PHP命令Command模式用法实例分析
Aug 08 #PHP
You might like
PHP小技巧之函数重载
2014/06/02 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
2016/08/02 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
2016/08/02 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
Python 字典(Dictionary)操作详解
2014/03/11 Python
python批量赋值操作实例
2018/10/22 Python
用pycharm开发django项目示例代码
2018/10/24 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
历史专业学生的自我评价
2014/02/28 职场文书
考察现实表现材料
2014/05/19 职场文书
党性观念心得体会
2014/09/03 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
辞职信如何写
2015/02/27 职场文书
债务纠纷代理词
2015/05/25 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
Python 中 Shutil 模块详情
2021/11/11 Python
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers
MySQL创建管理LIST分区
2022/04/13 MySQL