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 相关文章推荐
php5.2时间相差8小时
Jan 15 PHP
PHP获取网卡地址的代码
Apr 09 PHP
php解析json数据实例
Aug 19 PHP
php中Array2xml类实现数组转化成XML实例
Dec 08 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
php写入txt乱码的解决方法
Sep 17 PHP
laravel框架使用极光推送消息操作示例
Feb 15 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环境搭建的详细步骤
2016/06/30 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
babel基本使用详解
2017/02/17 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
python随机取list中的元素方法
2018/04/08 Python
详解python编译器和解释器的区别
2019/06/24 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
python mock测试的示例
2020/10/19 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
金融专业个人的自我评价
2013/10/18 职场文书
教师找工作推荐信
2013/11/23 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
社区矫正工作方案
2014/06/04 职场文书
公司会议开幕词
2015/01/29 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
Python之基础函数案例详解
2021/08/30 Python
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android