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将网址字符串转换成超链接(网址或email)
May 25 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
解析yii数据库的增删查改
Jun 20 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
php验证session无效的解决方法
Nov 04 PHP
php格式化日期实例分析
Nov 12 PHP
php获取系统变量方法小结
May 29 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
php pdo操作数据库示例
Mar 10 PHP
thinkPHP事务操作简单案例分析
Oct 17 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
SMARTY学习手记
2007/01/04 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
javascript 函数式编程
2007/08/16 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
Node.js简单入门前传
2017/08/21 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
Python matplotlib可视化实例解析
2020/06/01 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
东方红海科技面试题软件测试方面
2012/02/08 面试题
超市活动计划书
2014/04/24 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
工作失职自我检讨书
2015/05/05 职场文书
污水处理保证书
2015/05/09 职场文书
演讲开场白台词大全
2015/05/29 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
MySQL普通表如何转换成分区表
2022/05/30 MySQL