php mysql jquery ajax 查询数据库三级联动

1、php 页面打开直接展示第一个select option中的数据

2、当第一个下拉列表选中的内容发生改变的时候,查询数据库填充第二个下拉列表

3、当第二个下拉列表选中的内容发生改变时,查询数据库填充第三个下拉列表

注意点:

1、查询出来的数据,如果绑定到select上

2、select cochange事件

3、ajax 请求,提交到某个php 页面,参数是下拉列表选中的值,需要知道如何获取,查询数据库有结果,如果将返回的json格式的数据进行解析

代码:

CREATE TABLE `acl_action` (
  `action_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘ID‘,
  `parent_id` INT(10) UNSIGNED DEFAULT NULL,
  `action_name` VARCHAR(35) DEFAULT NULL,
  PRIMARY KEY (`action_id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

connect.php 页面

header("Content-Type:text/html;charset=utf-8");

$mysqli = new mysqli(‘localhost‘, ‘root‘, ‘‘, ‘c‘);if ($mysqli->errno) {    die(‘Connect Error:‘ . $mysqli->error);} else {    $mysqli->set_charset(‘UTF8‘);}

ajax 提交页面demo04.php
require_once "connect.php";require_once "function.php";

if(isset($_GET["module"])){    $module = $_GET["module"];    echo getModuleMessage($mysqli,$module);}

if(isset($_GET["moduleChild"])){    $moduleChild=$_GET["moduleChild"];    echo getModuleChildMessage($mysqli,$moduleChild);}

function.php 页面
require_once "connect.php";

function getModuleMessage($mysqli,$module){    $result = $mysqli->query("SELECT action_id,action_name FROM acl_action where parent_id=" . $module);    if ($result && $result->num_rows > 0) {        while ($row = $result->fetch_assoc()) {            $select[] = array("action_id" => $row[‘action_id‘], "action_name" => $row[‘action_name‘]);        }        return json_encode($select);    }    return 0;}

function getModuleChildMessage($mysqli,$moduleChild){    $result = $mysqli->query("SELECT action_id,action_name FROM acl_action where parent_id=" . $moduleChild);    if ($result && $result->num_rows > 0) {        while ($row = $result->fetch_assoc()) {            $select[] = array("action_id" => $row[‘action_id‘], "action_name" => $row[‘action_name‘]);        }        return json_encode($select);    }}
demo04.js 页面
function getModuleChild() {    $.getJSON("demo0402.php", {module: $("#module").val()}, function (json) {        if(json==0){            clearChild();        }        var moduleChild = $("#moduleChild");        $("option", moduleChild).not(":first").remove();        $.each(json, function (index, array) {            var option = "<option value=‘" + array[‘action_id‘] + "‘>" + array[‘action_name‘] + "</option>";            moduleChild.append(option);        });        clearChild();    });}

function clearChild(){    var modulePage = $("#modulePage");    $("option", modulePage).not(":first").remove();}

function getModulePage() {    $.getJSON("demo0402.php", {moduleChild: $("#moduleChild").val()}, function (json) {        var modulePage = $("#modulePage");        $.each(json, function (index, array) {            var option = "<option value=‘" + array[‘action_id‘] + "‘>" + array[‘action_name‘] + "</option>";            modulePage.append(option);        });    });}

php 文件,里面嵌套html代码

<script src="jquery-2.1.4.js"></script><script src="demo04.js"></script>
<body><select id="module" onchange="getModuleChild()">    <option value="c">--请选择--</option>    <?php    $result = $mysqli->query("SELECT action_id,action_name FROM acl_action where parent_id=0");    if ($result && $result->num_rows > 0) {        while ($row = $result->fetch_assoc()) { ?>            <option value="<?php echo $row[‘action_id‘] ?>"><?php echo $row[‘action_name‘] ?></option>            <?php        }    }    ?></select><select id="moduleChild" onchange="getModulePage()">    <option value="c">--请选择--</option></select><select id="modulePage">    <option value="c">--请选择--</option></select></body>
时间: 2024-10-01 21:38:45

php mysql jquery ajax 查询数据库三级联动的相关文章

jquery ajax实现省市二级联动

今天给大家带来使用jQuery ajax实现的省市联动效果.我们直奔主题,先说下实现思路: 准备数据 这里数据库我使用的是mysql,先看下表格: provience表 city表 这里使用provience表的主键作为city表的外键,等下根据省份的id查找对应的市区 查询方法的封装 接下来就是实现查询所有省市以及根据省份id查找对应的城市的方法,这里我写了一个BaseDao封装了一些基本的数据库链接以及关闭连接的方法: BaseDao.java package com.jqueryajax.

第117天:Ajax实现省市区三级联动

Ajax实现省市区三级联动 思路: (1)首先获取省份信息 (2)发起Ajax请求,注意dataType中的T大写 (3)封装回调函数,回调函数success中用$.each循环每一条数据,动态创建option,并将数据添加到option中 (4)定义点击事件,注意点击省调用的是city函数,点击市调用的是area函数 (5)注意获取市信息用的是省编码(pCode),获取区用的是市编码(cCode). 1.HTML代码 1 <!doctype html> 2 <html lang=&qu

Ajax案例:三级联动查询员工的信息(三张表进行内连接)

需求分析: 通过数据库连接池,可以查询到数据库中员工的各种信息,通过点击下拉框的方式实现三级联动,即:没有点击city下拉框,后面两个下拉框中没有值,这样,点击city下拉框,department下拉框中才有值,点击department下拉框后employee下拉框中才有值,才可以进行选择,不可以跨级点击:点击最后一个下拉框可以将员工的id,last_name,email,salary,显示在下面的表格中: 实现上述功能的方法: 1.c3p0数据库连接池,实现数据库的链接:JdbcUtils类,

基于thinkphp和ajax的省市区三级联动

练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2,建一个index.html <div> <label>所在地点</label> <select name="province_id" id="province_id" style="width:150px;"

AJAX+PHP实现三级联动

利用ajax实现页面地区选择三级联动 效果图如下 当选择相应省份时,对应显示出所有相关城市和地区的下拉选择 来看下如何实现的 html页面部分 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.

基于ThinkPHP+AJAX的省市区三级联动

练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2,建一个index.html <div> <label>所在地点</label> <select name="province_id" id="province_id" style="width:150px;"

ajax简介以及用ajax做的三级联动小练习

ajax基本结构: 1 var name = $("#text_1").val(); 2 $.ajax({ 3 url: "Ashxs/Handler.ashx",//一般处理程序路径 4 data: { "name": name },//要传输的数据,冒号前面是键名后面是要传输的数据,如果有多条数据在大括号内用逗号拼接 5 type: "post",//传输方式 6 dataType: "json",//

ajax查询数据库,服务器传回json字符串,js解析json

服务器端获得要查询的东西,查询数据库,将查询的信息,以json字符串的形式返回给浏览器 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String departmentID=request.getParameter("departmentID"); DataBaseHandle dataBaseHandl

jQuery - 全国省市县三级联动

最近有空用jquery做了一个全国省市县的三级联动,在以后或许可以用的到 ,遗憾的是我还没用封装,等有空看能不能封装成一个插件 废话不多说,贴上代码: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>下拉框</title> 6 <script src="city.js"></script