如何根据第一个下拉框中选定的值在下拉框中获取第二个值

时间:2012-03-18 18:37:17

标签: php mysql

我在PHP中编写了以下代码,以在同一页面上生成两个下拉框。

第一个下拉框从MySQL表中获取值。此dropdpwn框包含一些UserID。第二个下拉框包含一些日期,这些日期应基于在第一个下拉框中选择的UserID。我在第二个下拉框中填入了MySQL表中的所有日期,但是,它应该在第一个下拉框中选择的UserID进行过滤。

只是通过这个PHP页面中的这两个下拉框中的这两个值,我已经通过按下提交按钮到另一个PHP页面来处理其他工作。

如果您能帮助我根据第一个保管箱上选择的用户ID填充第二个保管箱,我将不胜感激。这是我编写的代码,用于显示和填充这些下拉框。你可以告诉我,我应该修改的代码部分,如果你能告诉我修改代码,我将不胜感激。我是PHP的新手,这就是我要求代码级帮助的原因。

我的代码:

<html>
<head>
<title>
 Search Alert DB
</title>
<body>

  <br />

<?php>

  $con = mysql_connect("localhost","root","root"); // (host, user,pwd)
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("mysql", $con);

echo "<p> Search Alert database </p>";
echo "<br />";

$result = mysql_query("SELECT distinct(UserID) FROM tblAlertLogSpecificUsersDayStatusFinal_1");
$options="";

echo "<form action='Search_AlertDB_process.php' method='POST'>\n";
//echo "Please choose a user: ";
echo "Please choose a user: <select name = userid>";
echo "<option>-Select-";
while ($row = mysql_fetch_array($result))
{

$userid=$row["UserID"]; 
$options ="<option value = \"$userid\">$userid </option>";
echo "$options";

}
echo "</select>";
echo "<br />";
echo "<br />";
$dayresult = mysql_query("SELECT distinct(Occurred_date) FROM tblAlertLogSpecificUsersDayStatusFinal_1");
$dayoptions="";

echo "Please pick a date:<select name = day>";
echo "<option>-Select-";
while ($row=mysql_fetch_array($dayresult)) { 

    $day=$row["Occurred_date"]; 
    $dayoptions ="<option value = \"$day\">$day </option>";
    echo "$dayoptions";
    //$options.="<OPTION VALUE=\"$id\">".$day; 
}   
echo "</select>";
echo "<br />";  
mysql_close($con);  
?>  

<br />
<input type="submit" name="Submit" value="Search" /> <br /> <br />
</form>

</body>
</html>

2 个答案:

答案 0 :(得分:2)

好吧,我们不会为你编写代码。否则你将成为你一生的新手:)

这里需要的是AJAX。实现它的最简单方法可能是jQuery ajax function。如果你不了解jQuery - 学习基础知识,它不应该花费超过一个小时左右。值得的:)

答案 1 :(得分:2)

你需要3件事

  1. 包含选择字段的初始页面
    • 第一个选择字段预填充了用户ID
    • 第二个字段不包含选项且已禁用
  2. 一个单独的端点/页面,它将用户ID作为参数返回相关日期
    • 它可能应该返回JSON / XML(或类似的东西),或者你可以返回预先在<option />标签中呈现的日期(不应该真的这样做,但是一起破解它会更快)
  3. 选择第一个下拉列表中的选项时触发Javascript回调。回调应该向单独的端点发送一个AJAX请求,并用结果填充第二个下拉列表。
  4. 我可能更容易为你写出来而不是[尝试]解释它,但这不是重点。只是尝试设置这一切(都是它;相对简单)将教你一大堆关于Javascript,AJAX和Web服务的东西。

    如果您选择从Web服务(单独的端点/页面)返回JSON / XML,并且希望您能够,您可能也会开始看到将逻辑与表示分离的好处,这将使世界变得与众不同你理解和交付代码。