php实现下拉级联,实用的mysql+ajax+php 三级级联下拉框

偶然看到别人的博客就拷过来了,觉得很有用:

a4c26d1e5885305701be709a3d33442f.png

1,昨天弄了一个简单的三级级联下拉框。超级实用。

index.php:

Ajax联动菜单

onChange="showMenu(this.value);">

一级分类

$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 <<

value={$arr["id"]}>{$arr["name"]}

EOD;

}

}

mysql_close($conn);

?>

onChange="showMenu2(this.value)">

二级分类

三级分类

onClick="alert(document.getElementByIdx_x_xx('sel').options[document.getElementByIdx_x_xx('sel').selectedIndex].text

+ '-' +

document.getElementByIdx_x_xx('sel2').options[document.getElementByIdx_x_xx('sel2').selectedIndex].text

+ '-' +

document.getElementByIdx_x_xx('sel3').options[document.getElementByIdx_x_xx('sel3').selectedIndex].text)">

aa.js

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("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("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

//指定编码

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);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值