我是一名初学PHP程序员。我设法将以下代码放在一起,从MySQL数据库创建一个双下拉列表。在第一个框中,您应该选择一个声明中心,在第二个框中,您应该选择一个律师,在第一个框中向集线器报告。
我的问题是它没有保留第一个下拉框的选择,因此所有的律师都可以在第二个框中找到。谁能告诉我我做错了什么?
这是我的代码:
<?php
require_once('appvars.php');
require_once('connectvars.php');
require_once('header.php');
?>
<head>
<script language=JavaScript>
function reload(form) {
var selected_value=form.hub.options[form.hub.options.selectedIndex].value;
self.location='registera.php?hub=' + selected_value ;
}
</script>
<head>
<?php
@$hub=$HTTP_GET_VARS['hub'];
if(strlen($hub) > 0 and !is_numeric($hub)){
echo "INVALID DATA.";
exit;
}
//This fetches content from CLAIMS HUBA table first to get the ATTORNEY list
$hub_query=mysql_query("SELECT DISTINCT hub_name, hub_id FROM claims_huba order by hub_name");
if(isset($hub) and strlen($hub) > 0) {
echo "Loaded: Claims Hubs.";
// If the numeric value of "hub" (selected attorney) is greater than zero we are OK
// Then we will perform an SQL query to find all attorneys with that number.
$attorney_query=mysql_query("SELECT DISTINCT firm_name FROM claims_hub where hub_id=$hub order by firm_name");
echo "Loaded: Attorney Firms by Hub ID.";
}else {
$attorney_query=mysql_query("SELECT DISTINCT firm_name FROM claims_hub order by firm_name");
echo "Loaded: Attorneys.";
}
echo "<form method=post name=f1 action='register_ui.php'>";
echo "<select name='hub' onchange=\"reload(this.form)\"><option value=''>Please select the Claims Hub you are reporting to:</option>"."<BR>";
while($qresult_hub = mysql_fetch_array($hub_query)) {
if($qresult_hub['hub_id']==@$hub){echo "<option selected value='$qresult_hub[hub_id]'>$qresult_hub[hub_name]</option>"."<BR>";}
else{echo "<option value='$qresult_hub[hub_id]'>$qresult_hub[hub_name]</option>";}
}
echo "</select>";
echo "<select name='attorney'><option value=''>Please select your firm: </option>";
while($qresult_attorney = mysql_fetch_array($attorney_query)) {
echo "Loaded: Attorneys queried.";
echo "<option value='$qresult_attorney[firm_name]'>$qresult_attorney[firm_name]</option>";
}
echo "</select>";
echo "<input type=submit value=Submit>";
echo "</form>";
?>
答案 0 :(得分:0)
如果您没有使用ajax方法,则必须将第一个下拉值传递到目标页面,然后您可以检查该值并使用JavaScript选择下拉列表。但我认为更好的方法是使用ajax功能。只需刷新第二个下拉值即可。希望这些信息对您有所帮助!#php
答案 1 :(得分:0)
尝试使用$_GET['hub']
代替$HTTP_GET_VARS['hub']
答案 2 :(得分:0)
你可以在客户端试试。 在第二个选择中,将rel属性添加到选项中,并将相应的父hub_id作为值。当第一个选择更改时,隐藏第二个选择中的所有选项,这些选项不属于所选的集线器。