Heim >Web-Frontend >js-Tutorial >jQuery PHP MySQL erreicht eine unendliche kaskadierende Dropdown-Box effect_jquery

jQuery PHP MySQL erreicht eine unendliche kaskadierende Dropdown-Box effect_jquery

WBOY
WBOYOriginal
2016-05-16 15:14:492158Durchsuche

Dieser Artikel implementiert einfach den unendlichen Kaskadeneffekt von jQuery und teilt ihn als Referenz mit allen. Der spezifische Inhalt ist wie folgt
Rendering:

 Nur ​​Dropdown-Feld Bild 1

Abbildung 2 Dropdown-Feld „Level-Eingabeaufforderung“

Abbildung 3 Klickreaktion auf Speicherdaten

Enthält hauptsächlich 3 Dateien: index.html (Homepage), wuxianjilian.php (Datenverarbeitung), wuxianjilian.sql (MySQL-Datendatei)
1. index.html

<html>
<head>
  <title>无限级联</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Language" content="zh-CN" />
  <script type="text/javascript" src="http://files.cnblogs.com/Zjmainstay/jquery-1.6.2.min.js"></script>
</head>
<body>
<div id="jilianContainer"></div>
<script type="text/javascript">
$(document).ready(function(){
  var getData = function(obj){
    $.ajax({
      url:'wuxianjilian.php',
      type:'POST',
      data:{"pid":obj.val()},
      dataType:'json',
      async:false,
      success:function(data){
        if($(".selection").length){
          $(".selection:gt("+$(obj).index()+")").remove();  //移除后面所有子级下拉菜单
          $(".selection:last").after(data);          //添加子级下拉菜单
        }else {
          $("#jilianContainer").append(data);          //初始加载情况
        }
        //所有下拉响应
        $(".selection").unbind().change(function(){
          getData($(this));
        });
      },
      error:function(msg){
        alert('error');
      }
    });
  }
  
  //Init
  getData($(this));
  
});
</script>

<!-- 数据存储示例,仅提取数据,不做操作 -->

<div style="height:100px;display:block;"></div>
<input type="button" value="存储数据" id="save"></input>
<script type="text/javascript">
$(document).ready(function(){
  $("#save").click(function(){
    var data = [];
    $(".selection").each(function(){
      data.push($.trim($(this).val()));
    })
    
    alert(data.join(','));
  });
});
</script>

</body>
</html>


2. wuxianjilian.php

<&#63;php
  header("Content-type: text/html; charset=utf-8"); 

  //数据库连接操作
  $conn = mysql_connect("localhost","Zjmainstay","") or die("Can not connect to database.Fatal error handle by ". __FILE__);
  mysql_select_db("test",$conn);      //数据库名为 test
  mysql_query("SET NAMES utf8",$conn);
  
  //获取父级id
  $pid = (int)$_POST['pid'];
  
  //查询子级
  $sql = "SELECT id,text FROM `wuxianjilian` WHERE pid={$pid}";
  $result = mysql_query($sql,$conn);
  
  //组装子级下拉菜单
  $html = '';
  while($row = mysql_fetch_assoc($result)){
    $html .= '<option value="'.$row['id'].'">'.$row['text'].'</option>';
  }

  if(!empty($html)) $html = '<select class="selection"><option value="">请选择</option>' . $html . '</select>';
  
  //输出下拉菜单
  echo json_encode($html);
//End_php


3. wuxianjilian.sql

wuxianjilian.sql
/*
Navicat MySQL Data Transfer

Source Server     : localhost
Source Server Version : 50516
Source Host      : localhost:3306
Source Database    : test

Target Server Type  : MYSQL
Target Server Version : 50516
File Encoding     : 65001

Date: 2012-10-24 20:59:09
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `wuxianjilian`
-- ----------------------------
DROP TABLE IF EXISTS `wuxianjilian`;
CREATE TABLE `wuxianjilian` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `pid` int(11) DEFAULT NULL,
 `text` varchar(32) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of wuxianjilian
-- ----------------------------
INSERT INTO `wuxianjilian` VALUES ('1', '0', 'A0');
INSERT INTO `wuxianjilian` VALUES ('2', '0', 'B0');
INSERT INTO `wuxianjilian` VALUES ('3', '1', 'C1');
INSERT INTO `wuxianjilian` VALUES ('4', '1', 'D1');
INSERT INTO `wuxianjilian` VALUES ('5', '1', 'E1');
INSERT INTO `wuxianjilian` VALUES ('6', '2', 'F2');
INSERT INTO `wuxianjilian` VALUES ('7', '2', 'G2');
INSERT INTO `wuxianjilian` VALUES ('8', '3', 'H3');
INSERT INTO `wuxianjilian` VALUES ('9', '3', 'I3');
INSERT INTO `wuxianjilian` VALUES ('10', '3', 'J3');
INSERT INTO `wuxianjilian` VALUES ('11', '3', 'K3');
INSERT INTO `wuxianjilian` VALUES ('12', '4', 'L4');
INSERT INTO `wuxianjilian` VALUES ('13', '4', 'M4');
INSERT INTO `wuxianjilian` VALUES ('14', '8', 'N8');
INSERT INTO `wuxianjilian` VALUES ('15', '9', 'N9');
INSERT INTO `wuxianjilian` VALUES ('16', '14', 'O14');
INSERT INTO `wuxianjilian` VALUES ('17', '14', 'P14');
INSERT INTO `wuxianjilian` VALUES ('18', '14', 'Q14');
INSERT INTO `wuxianjilian` VALUES ('19', '17', 'R17');
INSERT INTO `wuxianjilian` VALUES ('20', '17', 'S18');
INSERT INTO `wuxianjilian` VALUES ('21', '20', 'T20');

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die die JQuery-Programmierung erlernen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn