高手指点一下啊 php 界面中有两个下拉框,下来框中的值都是从数据库里读出来的, 在第一个中选择某项的时候,第二个下拉框中的值有所改变,(也就是查询数据库的时候条件改变了)?怎么实现?我现在用js函数 能得到第一个下拉框中的选择值了。怎么改变第二个下拉框中的值呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 果断Ajax,仅供参考:<?php/* Created on [2012-5-16] Author[newton] */#查询标题信息$sql="select * from table"; $res=mysql_query($sql); if(!$res) die("SQL: {$sql} <br>Error:".mysql_error()); if(mysql_affected_rows() > 0){ $titles = array(); while($rows = mysql_fetch_array(MYSQL_ASSOC)){ array_push($titles,$rows); } }?><table border=1><?php foreach($titles as $row_Recordset_task){ ?> <tr> <td> <a href="javascript:void(0)" onclick="record(<?=$row_Recordset_task['TID']?>)" > <?=$row_Recordset_task['csa_title']?> </a> </td> </tr><?php } ?></table><div id="show"></div><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>//Ajaxvar 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.phpif(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>"; }}?> 这个必须得使用ajax了.实现的手段是1.下拉框 下拉选取后 onchange(忘记是不是用onchange) 触发 ajax事件2.ajax 从服务器端读取数据库新的数据返回给js3.js 依据返回的数据修改下拉2的数据,或重写整个下拉2的部分. 事件触发:onchange 清空select: select.options.length=0;插入option: select.options.add(new Option("显示值", "真实值")); 动态行追加后的取值问题 PHP调用Mysql写文件的问题 问一个很菜的问题大家不要笑话 JS如何在连接后边传的值中带&符号 怎么样得到discuz中,登录用户的用户名,或者id 问一判断记录集是否为空的问题 怎样判断来访者IP是否是国外IP? 一人多ID的数据库表的设计问题 为什么显示不出来呢??? Call to undefined function mb_strwidth() 这个怎么解决 dedecms栏目伪静态规则求助 关于ltrim()函数
/* Created on [2012-5-16] Author[newton] */
#查询标题信息
$sql="select * from table";
$res=mysql_query($sql);
if(!$res) die("SQL: {$sql} <br>Error:".mysql_error());
if(mysql_affected_rows() > 0){
$titles = array();
while($rows = mysql_fetch_array(MYSQL_ASSOC)){
array_push($titles,$rows);
}
}
?><table border=1>
<?php foreach($titles as $row_Recordset_task){ ?>
<tr>
<td>
<a href="javascript:void(0)" onclick="record(<?=$row_Recordset_task['TID']?>)" >
<?=$row_Recordset_task['csa_title']?>
</a>
</td>
</tr>
<?php } ?>
</table>
<div id="show"></div>
<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>";
}
}?>
1.下拉框 下拉选取后 onchange(忘记是不是用onchange) 触发 ajax事件
2.ajax 从服务器端读取数据库新的数据返回给js
3.js 依据返回的数据修改下拉2的数据,或重写整个下拉2的部分.
清空select: select.options.length=0;
插入option: select.options.add(new Option("显示值", "真实值"));