<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>PHP+ajax实现二级联动</title>
</head>
<body>
    <select id="province">
        <option value="0">请选择省份</option>
        <option value="1">北京</option>
        <option value="2">河北</option>
        <option value="3">山东</option>
    </select>
    <select id="city">
        <option value="0">请选择城市</option>
    </select>
</body>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$(function(){
    $("#province").change(function(){
        var province = $(this).val(); // 获取province的value值
        if(province == 0){            // province为0的时候停止;否则
            return;
        }else{
            var url = 'demo.php';
            $.ajax({
                url: url,             // php的url路径
                type: 'post',
                data: {province:province},
                dataType: 'json',
                success: function(res) {
                    if(res.code == 200){
                        var option = '<option>请选择城市</option>';
                        var list = res.list;
                        for (var i = 0; i < list.length; i++) {   // 循环返回的值(城市)
                            option += "<option>" + list[i] + "</option>";
                        }
                    }else{
                        var option = '<option>请选择城市</option>';  // 请求失败(默认)
                    }
                    $("#city").html(option);    // js刷新第二个下拉框的值
                }
            })
        }
    })
})
</script>
</html>接下来为PHP代码,注释已表明;​
<?php
$province = $_POST['province'];       // 获取ajax传来的值
$list['1'] = ['朝阳', '海淀', '西城'];
$list['2'] = ['保定', '唐山', '邯郸'];
$list['3'] = ['济南', '菏泽', '日照'];
if($list[$province]){                 // 数组存在值的情况下
    echo json_encode(['code'=>200, 'list'=>$list[$province]]);  // 200成功,$list[$province]传递相应的数据
}else{
    echo json_encode(['code'=>500]);
}

PHP+ajax实现二级联动的更多相关文章

  1. 用户管理的设计--3.jquery的ajax实现二级联动

    页面效果 实现步骤 1.引入struts整合json的插件包 2.页面使用jquery的ajax调用二级联动的js //ajax的二级联动,使用选择的所属单位,查询该所属单位下对应的单位名称列表 fu ...

  2. Spring MVC中Ajax实现二级联动

    今天写项目遇到了二级联动,期间遇到点问题,写个博客记录一下. 后台Controller: @RequestMapping("/faultType") @ResponseBody p ...

  3. 使用jquery.ajax实现省市的二级联动(SSH架构)

    首先实现jquery ajax的二级联动 要下载个jquery.js 我在这里就不准备了 自行百度下载 背景介绍:通过部门的ID来查找部门下的所有班级 我实现二级联动的思路是:先查询所有部门 显示在页 ...

  4. asp.net DropDownList无刷新ajax二级联动实现详细过程

    只适合新手制作DropDownList无刷新ajax二级联动效果: 数据库实现,添加两表如图:表1,pingpai,表2,type,具体数据库实现看自己的理解: //页面主要代码: <asp:S ...

  5. 在使用ajax实现三级联动调用数据库数据并通过调出的数据进行二级表单查询

    在使用ajax实现三级联动查询数据库数据后再使用ajax无刷新方式使用三级联动调出的数据进行二级查询 但是现在遇到问题,在二级查询的时候期望是将数据以表格的形式展示在三级联动的下方,但是现在在查询后会 ...

  6. Asp.Net下,基于Jquery的Ajax二级联动

    最近做一个项目,要求实现二级联动效果.背景为:通过学院的选择,联动出专业选项.起初想直接用微软的控件实现Ajax效果,但是DropDownList控件会自动触发PostBack,在后台根本就不好控制, ...

  7. 利用Ajax和JSON实现关于查找省市名称的二级联动功能

    功能实现的思路:我们经常碰见网上购物时候填写收件地址会用到这个查找省市县的三级联动查找功能,我们可以利用Ajax和JSON技术模拟这个功能,说白了同样是使用Ajax的局部数据更新功能这个特性.因为省市 ...

  8. Ajax实现的城市二级联动二

    上一篇联动一种只是城市用ajax请求获取并渲染,这里将省份也用ajax请求并渲染 1.HTML <select id="province"> <option> ...

  9. Ajax实现的城市二级联动一

    前一篇是把省份和城市都写在JS里,这里把城市放在PHP里,通过发送Ajax请求城市数据渲染到页面. 1.html <select id="province"> < ...

随机推荐

  1. zombodb 索引管理

    zombodb 支持标准的index 管理(create .alter.drop) 创建索引 CREATE INDEX index_name ON table_name USING zombodb ( ...

  2. php输出数据到csv文件

    function export() { $fileName = date('Y-m-d').uniqid().'.csv'; set_time_limit(0); ini_set('memory_li ...

  3. tomcat 端口修改和内存配置

    端口号修改参考:https://jingyan.baidu.com/article/adc815139b12def722bf7377.html Tomcat内存溢出(windows) java.lan ...

  4. oracle impdp导入脚本

    第一步:sqlplus: sys下面 create directory data_dir as '/home/oracle/dmp/user'; 第二步:sqlplus: sys下面grant rea ...

  5. zabbix 与 nginx (五)

    zabbix监控nginx的大概流程为:   1:被监控端的nginx开启stub_status模块 2:通过脚本的方式获取nginx的状态值 3:修改被监控端的配置文件,Userparameter= ...

  6. Sonar6.7.1配置修改备注

    sonarqube-6.7.1\conf\sonar.properties的配置字段 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useU ...

  7. C#编程经验-VS Debug

    F11 OneStepDebugF10 ProcessDebugbreakPointDebug(quick location,then use one step debug)

  8. ThinkPHP5.*版本发布安全更新

    2018 年 12 月 9 日 发布 本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版 ...

  9. Promise事件比timeout优先

    Promise, setTimeout 和 Event Loop 下面的代码段,为什么输出结果是1,2,3,5,4而非1,2,3,4,5?(function test() { setTimeout(f ...

  10. 44个Java代码性能优化总结

    https://blog.csdn.net/xiang__liu/article/details/79321639 ---稍后有时间整理