0

大家好:我有 2 个下拉列表,它们从两个不同的表中填充。第一个表 (ID|Project_Name|isActive)。第二个 TABLE 用于用户 (Project_Id|Name) 我想根据从第一个下拉列表中选择的内容显示第二个下拉列表中的选项。例如在第一个表中我有 3 个项目: 1:Project1 2:Project2 3:Project3

在用于用户的第二个 TABLE 上:用户的 id 取决于第一个 TABLE 中的项目:用户 A 在 Project1 上工作 用户 B 在 Project1 上工作 用户 C 在 Project2 上工作

<html>
<body>
<script type="text/javascript">
function changeProject()
{
alert(document.getElementById("ProjOptionId_id").value);
}
</script>
<form method="POST" action="page.php">
<table>
<tr>
<td>
<?php Insertprojects(); ?>
</td>
</tr>
<tr>
<td>
<?php InsertUsers(); ?>
</td>
</tr>
<form>
</body>
</html>

<?php
function Insertprojects()
{
$Search ="SELECT * FROM proj_database";
$query= mysql_query($Search);
echo "<select name=\"ProjOptionId\" id=\"ProjOptionId_id\" onchange=\"changeProject()\">";
$bFirstLoop=0;
while($Row = mysql_fetch_array($query))
echo "<option value=\"$Row[ID]\">$Row[Project_Name]</option>";
if($bFirstLoop==0)
{
$GLOBALS['sProjectId'] = $Row['ID'];
}
$bFirstLoop++;
}
echo "</select>";
}
?>

我制作了 javascript 函数来获取下拉列表的索引,因此我可以根据所选元素更改第二个下拉列表。

当您在第一个下拉列表中选择 Project1 时,我该怎么做才能在第二个下拉列表中显示仅与 Project1 一起使用的用户等等,而无需重新加载页面。

4

1 回答 1

0

我设法通过jQuery解决了这个问题:

$(function() 
{
$("#projectSelector").change(function() 
{
$("#customerSelector").load("getter.php?project_id=" + $("#projectSelector").val());
});
});

这是我的第一个下拉菜单:

<select id="projectSelector" name="projectSelector">
<option selected value="base">--Select an option--</option>
<?php
/*Code to populate from Mysql query
SELECT* FROM......*/
?>
</select>

第二个下拉菜单根据从第一个下拉菜单中选择的内容取值

<select id="customerSelector">
<option>--Select an Option--</option>
</select>

getter.php 是一个外部文件,其中包含一个在下拉值更改时使用的变量:

<?php
$sProjectId = $_GET['project_id'];
mysql_query = SELECT * FROM database1 WHERE tablecolum = $sProjectId;
while ($row = mysql_fetch_array($result)
{
echo "<option>".$row['tablecolumn']."</option>";
}
于 2013-11-01T16:41:43.790 回答