<form name="frm">
<select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)">
<option selected>请选择</option>
<option value="1">内科</option>
<option value="2">内科</option>
<option value="3">内科</option>
</select>
<select name="s2">
<option value="请选择" selected>请选择</option>
</select>
</form>
<script language="javascript">
//获取一级菜单长度
var select1_len = document.frm.s1.options.length;
var select2 = new Array(select1_len);//把一级菜单都设为数组
for (i=0; i<select1_len; i++)
{
select2[i] = new Array();
}//定义基本选项
<?php
$link = mysql_connect('localhost', 'root', '123456');
if (!$link) {
die('Could not connect: ' . mysql_error());
}mysql_select_db('doctor');
mysql_query("set names 'gb2312'");
$skill = array("内科","内科","内科");
for($i=1;$i<=sizeof($skill);$i++){
$y=1;
$sql = "select name from doctor where major like '%$skill[$i]%' ";
$re = mysql_query($sql);
while($data = mysql_fetch_array($re)){
echo "select2[$i][$y] = new Option($data[0],'')";
$y = $y+1;
echo $data[0];
}
}
?>//联动函数
function redirec(x)
{
var temp = document.frm.s2;
for (i=0;i<select2[x].length;i++)
{
temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);
}
temp.options[0].selected=true;}</script>第一个下拉菜单是事先写好的,第二个是从数据库中查询得出的,但是这个代码第二个菜单无法通过查询数据库得到选项,不知为何。。
<select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)">
<option selected>请选择</option>
<option value="1">内科</option>
<option value="2">内科</option>
<option value="3">内科</option>
</select>
<select name="s2">
<option value="请选择" selected>请选择</option>
</select>
</form>
<script language="javascript">
//获取一级菜单长度
var select1_len = document.frm.s1.options.length;
var select2 = new Array(select1_len);//把一级菜单都设为数组
for (i=0; i<select1_len; i++)
{
select2[i] = new Array();
}//定义基本选项
<?php
$link = mysql_connect('localhost', 'root', '123456');
if (!$link) {
die('Could not connect: ' . mysql_error());
}mysql_select_db('doctor');
mysql_query("set names 'gb2312'");
$skill = array("内科","内科","内科");
for($i=1;$i<=sizeof($skill);$i++){
$y=1;
$sql = "select name from doctor where major like '%$skill[$i]%' ";
$re = mysql_query($sql);
while($data = mysql_fetch_array($re)){
echo "select2[$i][$y] = new Option($data[0],'')";
$y = $y+1;
echo $data[0];
}
}
?>//联动函数
function redirec(x)
{
var temp = document.frm.s2;
for (i=0;i<select2[x].length;i++)
{
temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);
}
temp.options[0].selected=true;}</script>第一个下拉菜单是事先写好的,第二个是从数据库中查询得出的,但是这个代码第二个菜单无法通过查询数据库得到选项,不知为何。。
<form name="frm">
<select name="s1" onChange="redirec(this.value)">
<option selected>请选择</option>
<option value="1">内科</option>
<option value="2">内科</option>
<option value="3">内科</option>
</select>
<div id="s2"></div>
</form>
<script>
//Ajax
var xmlHttp; function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
} function record(id){
createXMLHttpRequest();
url = "action.php?id="+id+"&ran="+Math.random();
method = "GET";
xmlHttp.open(method,url,true);
xmlHttp.onreadystatechange = show;
xmlHttp.send(null);
} function show(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
var text = xmlHttp.responseText;
document.getElementById("s2").innerHTML = text;
}else {
alert("response error code:"+xmlHttp.status);
}
}
}
</script>
<?php
#action.php
if(isset($_GET['id'])){
$sql="select * from table where id=".$_GET['id'];
$res=mysql_query($sql);
if(!$res) die("SQL: {$sql} <br>Error:".mysql_error());
if(mysql_affected_rows() > 0){
$arrMenu=array();
while($rows = mysql_fetch_array(MYSQL_ASSOC)){
array_push($arrMenu,$rows);
}
}
mysql_close();
if(!empty($arrMenu)){
echo "<select name='menu2'>";
foreach($arrMenu as $item2){
echo "<option value='{$item2['id']}'>{$item2['name']}</option>";
}
echo "</select>";
}
}?>
“mysql_fetch_array — 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
……
……
mysql_fetch_array()中可选的第二个参数 result_type是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。 如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样)。
”
函数参考->mysql函数->mysql_fetch_array()