php实现三级级联下拉框


Posted in PHP onApril 17, 2016

这是我在网上查找到的php实现三级级联下拉框的资料,共享个大家,大家一起进步,具体内容如下

index.php:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Ajax联动菜单</title>
<script language="javascript" type="text/javascript" src="aa.js"></script>
</head>
<body>
<form>
<label>
<select name="sel" id="sel" onChange="showMenu(this.value);">
 <option>一级分类</option>
<?php
$conn = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
mysql_select_db('fitment', $conn) or die ('Can\'t use database : ' . mysql_error());
mysql_query("set names 'gb2312'");
$str = "SELECT * FROM `fitment_sort` where supid = '0' ORDER BY `id` ASC";
$result = mysql_query($str) or die("Invalid query: " . mysql_error());
if($result)   while ($arr = mysql_fetch_array($result)){
    echo <<<EOD
<option value={$arr["id"]}>{$arr["name"]}</option>
EOD; }
mysql_close($conn);
?>
</select>
</label>
<label>
<select name="sel2" id="sel2" onChange="showMenu2(this.value)">
 <option>二级分类</option>
 </select>
</label>
<label>
<select name="sel3" id="sel3">
 <option>三级分类</option>
</select>
</label>
</form>
<input type=button value="send value" onClick="alert(document.getElementByIdx_x_xx_x_xx('sel').options[document.getElementByIdx_x_xx_x_xx('sel').selectedIndex].text + '-' + document.getElementByIdx_x_xx_x_xx('sel2').options[document.getElementByIdx_x_xx_x_xx('sel2').selectedIndex].text + '-' + document.getElementByIdx_x_xx_x_xx('sel3').options[document.getElementByIdx_x_xx_x_xx('sel3').selectedIndex].text)">
</body>
</html>

aa.js

<!--
var xmlHttp
var xmlHttp2
//函数showMenu(str) - 功能函数1
function showMenu(str) xmlHttp=GetXmlHttpObject()    //调用GetXmlHttpObject()函数,创建XMLHttpRequest对象
if (xmlHttp==null)        //如果创建失败,则 alert ("Browser does not support HTTP Request")
 return 
var url="get2.php"        //定义url , 其主要读取数据库
url=url+"?q="+str
url=url+"&sid="+Math.random()  //Math对象的random方法,取随机数
xmlHttp.onreadystatechange=stateChanged //设置当XMLHttpRequest对象xmlHttp状态改变时调用的函数,注意函数名后不要添加小括号
xmlHttp.open("GET",url,true)  //使用XMLHttpRequest对象的open()方法 , 创建HTTP请求
xmlHttp.send(null)        //使用XMLHttpRequest对象的open()方法 , 发送HTTP请求
}
//函数showMenu(str) - 功能函数1
function showMenu2(str)
{
xmlHttp2=GetXmlHttpObject()    //调用GetXmlHttpObject()函数,创建XMLHttpRequest对象
if (xmlHttp2==null)        //如果创建失败,则 alert ("Browser does not support HTTP Request")
 return 
var url="get2.php"        //定义url , 其主要读取数据库
url=url+"?q2="+str
url=url+"&sid="+Math.random()  //Math对象的random方法,取随机数
xmlHttp2.onreadystatechange=stateChanged2 //设置当XMLHttpRequest对象xmlHttp状态改变时调用的函数,注意函数名后不要添加小括号
xmlHttp2.open("GET",url,true)  //使用XMLHttpRequest对象的open()方法 , 创建HTTP请求
xmlHttp2.send(null)        //使用XMLHttpRequest对象的open()方法 , 发送HTTP请求
}
//函数BuildSel() , 根据返回的的字串 , 重新构建新的下拉菜单控件Select - 功能函数2
function BuildSel(str,sel)   //先清空原来的数据.
  sel.options.length=0;   var arrstr = new Array();   arrstr = str.split(",");
  if(str.length>0)      //循环
    for(var i=0;i<arrstr.length;i++)       var subarrstr=new Array();       subarrstr=arrstr[i].split("|");
      sel.options.add(new Option(subarrstr[1],subarrstr[0]));     sel.options[0].selected=true; }
//函数stateChanged() - 响应HTTP请求状态变化
function stateChanged() //判断XMLHttpRequest对象的readyState属性值是否为4,如果为4表示异步调用完成(注意:异步调用完成 不代表 异步调用成功)
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") //如果异步调用成功 --> XMLHttpRequest对象的status属性值为200 , html文件在本地运行,则xmlHttp.status的返回值为0,故应该加上xmlHttp.status==0
 if(xmlHttp.status==200 || xmlHttp.status==0)     //调用文档对象模型DOM的getElementById()方法查找html文件中的标签txtHint ,
     //innerHTML为IE浏览器中的属性,可以用来更改标签间文本的内容 ,
     //xmlHttp.responseText , 通过XMLHttpRequest的responseText属性来获取数据 responseText,结果为字符串;responseXML,结果为XML形式
//     document.getElementByIdx_x_xx_x_xx("txtHint").innerHTML=xmlHttp.responseText
     BuildSel(xmlHttp.responseText,document.getElementsByTagName_r("*").sel2)
     showMenu2(document.getElementsByTagName_r("*").sel2.value); }
}
//函数stateChanged() - 响应HTTP请求状态变化
function stateChanged2() //判断XMLHttpRequest对象的readyState属性值是否为4,如果为4表示异步调用完成(注意:异步调用完成 不代表 异步调用成功)
if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") //如果异步调用成功 --> XMLHttpRequest对象的status属性值为200 , html文件在本地运行,则xmlHttp.status的返回值为0,故应该加上xmlHttp.status==0
 if(xmlHttp2.status==200 || xmlHttp2.status==0)     //调用文档对象模型DOM的getElementById()方法查找html文件中的标签txtHint ,
     //innerHTML为IE浏览器中的属性,可以用来更改标签间文本的内容 ,
     //xmlHttp.responseText , 通过XMLHttpRequest的responseText属性来获取数据 responseText,结果为字符串;responseXML,结果为XML形式
//     document.getElementByIdx_x_xx_x_xx("txtHint").innerHTML=xmlHttp.responseText
     BuildSel(xmlHttp2.responseText,document.getElementsByTagName_r("*").sel3) }
}
//函数GetXmlHttpObject() - 创建XMLHttpRequest对象,即创建一个异步调用对象
function GetXmlHttpObject() var xmlHttp=null;
try // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest(); catch (e) //Internet Explorer
 try  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); catch (e)  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
return xmlHttp; -->

get2.php

<?php header('Content-Type:text/html;charset=GB2312'); $conn = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
mysql_select_db('fitment', $conn) or die ('Can\'t use database : ' . mysql_error());
mysql_query("set names 'gb2312'");
//如果传递过来q
if($_GET["q"]){
$strs = "SELECT * FROM fitment_sort WHERE supid=' ".$_GET["q"]."' ";
//echo $str;
$results = mysql_query($strs) or die("Invalid query: " . mysql_error());
if($results)   while ($arrs = mysql_fetch_array($results)){
    $strings .= $arrs["id"]."|".$arrs["name"].",";   }
  echo substr($strings,0,strlen($strings)-1); }
//如果传递过来q2
if($_GET["q2"]){
$str = "SELECT * FROM fitment_sort WHERE supid= '".$_GET["q2"]."'";
//echo $str;
$result = mysql_query($str) or die("Invalid query: " . mysql_error());
if($result)   while ($arr = mysql_fetch_array($result)){
    $string .= $arr["id"]."|".$arr["name"].",";   }   echo substr($string,0,strlen($string)-1); }
mysql_close($conn);
?>

以上就是php实现三级级联下拉框的相关代码,希望对大家学习php程序设计有所帮助。

PHP 相关文章推荐
php 远程图片保存到本地的函数类
Dec 08 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
php用户登录之cookie信息安全分析
May 13 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
PHP实现对数组分页处理实例详解
Feb 07 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
php使用json-schema模块实现json校验示例
Sep 28 PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 09 PHP
如何在Laravel之外使用illuminate组件详解
Sep 20 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 #PHP
orm获取关联表里的属性值
Apr 17 #PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 #PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 #PHP
PHP6连接SQLServer2005的三部曲
Apr 15 #PHP
php使用pear_smtp发送邮件
Apr 15 #PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 #PHP
You might like
黑夜路人出的几道php笔试题
2009/08/04 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
详解Python的Django框架中的模版相关知识
2015/07/15 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
python如何调用字典的key
2020/05/25 Python
python redis存入字典序列化存储教程
2020/07/16 Python
Python识别验证码的实现示例
2020/09/30 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
高考自主招生自荐信
2013/10/20 职场文书
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
浅谈Web Storage API的使用
2021/06/23 Javascript
分享Python异步爬取知乎热榜
2022/04/12 Python