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

 更新时间:2018年08月10日 09:23:57   作者:JohnKenneth   我要评论

这篇文章主要介绍了PHP+ajax实现二级联动菜单功能,涉及php结合ajax的数据交互与页面元素动态操作相关实现技巧,需要的朋友可以参考下

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

如何实现二级联动

工作原理

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

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

HTML代码

<html>
<head>
<title>www.jb51.net 二级联动</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相关内容感兴趣的读者可查看本站专题:《PHP+ajax技巧与应用小结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • PHP数组交集的优化代码分析

    PHP数组交集的优化代码分析

    假设我们正在运营一个手机相关的网站,用户可以通过指定若干参数(如操作系统,屏幕分辨率,摄像头像素等等)来筛选自己想要的手机。
    2011-03-03
  • PHP中防止SQL注入攻击和XSS攻击的两个简单方法

    PHP中防止SQL注入攻击和XSS攻击的两个简单方法

    所有有打印的语句如echo,print等 在打印前都要使用htmlentities() 进行过滤,这样可以防止Xss,注意中文要写出htmlentities
    2010-04-04
  • php实现的中文分词类完整实例

    php实现的中文分词类完整实例

    这篇文章主要介绍了php实现的中文分词类,结合完整实例形式分析了php基于字符串的遍历、转换、运算等技巧实现中文分词功能的具体方法,需要的朋友可以参考下
    2017-02-02
  • 利用PHP+JS实现搜索自动提示(实例)

    利用PHP+JS实现搜索自动提示(实例)

    本篇文章对利用PHP+JS实现搜索自动提示的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 深入解析php中的foreach函数

    深入解析php中的foreach函数

    以下是对php中的foreach函数进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)

    PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)

    UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储、处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式
    2012-07-07
  • PHP面向对象学习笔记之一 基础概念

    PHP面向对象学习笔记之一 基础概念

    PHP面向对象学习笔记之一 基础概念,想要学习PHP面向对象编程的朋友可以参考下
    2012-10-10
  • DedeCMS dede_channeltype表字段注释

    DedeCMS dede_channeltype表字段注释

    学习过程中,可以通过参考别人的代码,让自己的技术进步的更快。
    2010-04-04
  • php结合curl实现多线程抓取

    php结合curl实现多线程抓取

    PHP利用 Curl可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,因此经常需要借助Curl Multi Functions 这个功能实现并发多线程的访问多个url地址以实现并发多线程抓取网页或者下载文件
    2015-07-07
  • 使用GD库生成带阴影文字的图片

    使用GD库生成带阴影文字的图片

    这篇文章主要介绍了使用GD库生成带阴影文字的图片的方法,非常的细致,推荐给大家,需要的朋友可以参考下
    2015-03-03

最新评论