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下通过file_get_contents的代理使用方法
Feb 16 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
Smarty保留变量用法分析
May 23 PHP
Yii隐藏URL中index.php的方法
Jul 12 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP实现微信申请退款功能
Oct 01 PHP
PHP设计模式(观察者模式)
Jul 07 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入门教程 精简版
2009/12/13 PHP
PHP入门学习笔记之一
2010/10/12 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
Python实现简单的代理服务器
2015/07/25 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
Tesserocr库的正确安装方式
2018/10/19 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
python 图片去噪的方法示例
2019/07/09 Python
python实现人脸签到系统
2020/04/13 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
关于礼仪的演讲稿
2014/01/04 职场文书
委托协议书范本
2014/04/22 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android