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分页显示制作详细讲解
Dec 05 PHP
php URL跳转代码 减少外链
Jun 25 PHP
php抽奖小程序的实现代码
Jun 18 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
zf框架的Filter过滤器使用示例
Mar 13 PHP
实例介绍PHP的Reflection反射机制
Aug 05 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
PHP中使用BigMap实例
Mar 30 PHP
Laravel学习教程之model validation的使用示例
Oct 23 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 PHP
如何在PHP中生成随机数
Jun 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
python的re模块应用实例
2014/09/26 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
Python面向对象类的继承实例详解
2018/06/27 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
基于python实现名片管理系统
2018/11/30 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
.NET方向面试题
2014/11/20 面试题
建筑施工员岗位职责
2013/11/26 职场文书
幼儿教师考核制度
2014/01/25 职场文书
社会实践活动总结范文
2014/07/03 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
二手车转让协议书
2015/01/29 职场文书
爱国主义影片观后感
2015/06/18 职场文书
高一语文教学反思
2016/02/16 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript