簡體   English   中英

如何根據第一個下拉框中選定的值在下拉框中獲取第二個值

[英]How to get the second value in a dropdown box based on the selected one in the first dropdown box

我在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>

好吧,我們不會為你編寫代碼。 否則你將成為你一生的新手:)

你需要的是AJAX。 實現它的最簡單方法可能是jQuery ajax函數 如果你不了解jQuery - 學習基礎知識,它不應該花費超過一個小時左右。 這很值得 :)

你需要3件事

  1. 包含選擇字段的初始頁面
    • 第一個選擇字段預先填充了用戶ID
    • 第二個字段不包含任何選項並被禁用
  2. 一個單獨的端點/頁面,它將用戶ID作為參數來返回相關日期
    • 它可能應該返回JSON / XML(或類似的東西),或者你可以返回預先在<option />標簽中呈現的日期(不應該真的這樣做,但是一起破解它會更快)
  3. 選擇第一個下拉列表中的選項時會觸發Javascript回調。 回調應該向單獨的端點發送AJAX請求,並使用結果填充第二個下拉列表。

我可能更容易為你寫出來而不是[嘗試]解釋它,但這不是重點。 只是嘗試設置這一切(都是它;相對簡單)將教你一大堆關於Javascript,AJAX和Web服務的東西。

如果您選擇從Web服務(單獨的端點/頁面)返回JSON / XML,並且希望您能夠,那么您也可能會開始看到將邏輯與表示分離的好處,這將使您的理解世界變得不同和交付代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM