如何根据表mysql更改下拉菜单

时间:2013-10-31 16:20:12

标签: php mysql drop-down-menu

大家好:我有两个下拉列表,从两个不同的表填充自己。 第一个TABLE (ID | PROJECT_NAME | isActive)。 第二个TABLE适用于用户 (PROJECT_ID |名称) 我想根据从第一个下拉列表中选择的内容显示第二个下拉列表中的选项。 例如,在第一个TABLE中我有3个项目: 1:PROJECT1 2:Project2的 3:项目3

在第二个用于用户的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的用户,依此类推,而无需重新加载页面。

1 个答案:

答案 0 :(得分: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>";
}