zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    2万元小投资冷门暴利行业有哪些?投资什么利润大?
    街边小投资冷门暴利行业有哪些?做什么生意利润高?
    高利润赚钱行业有哪些?300的利润使人疯狂
    大学生兼职托管干什么?大学生兼职平台有哪些?
    大学生兼职可以做什么?具体有哪些兼职可做?
    大学生兼职创业怎么做?具体做什么好?
  • 原文地址:https://www.cnblogs.com/meroselove/p/7392532.html
Copyright © 2011-2022 走看看