[英]Auto-submitting dynamic select form
我的動態 select forms 有問題。 當提交“主題”表單時,它工作得很好,但是當提交“課程”表單時,表單似乎正確提交(localhost/page.php?subject=1&course=2),但它返回選項回到null
因此它不適用於依賴於 course_id 的后來的course_id
。
Header PHP:
<?php
$subject = $course = null;
$conn = mysql_connect('', '', '');
$db = mysql_select_db('',$conn);
if(isset($_GET["subject"]) && is_numeric($_GET["subject"]))
{
$subject = $_GET["subject"];
}
if(isset($_GET["course"]) && is_numeric($_GET["course"]))
{
$country = $_GET["course"];
}
?>
Javascript:
<script language="JavaScript">
function autoSubmit()
{
var formObject = document.forms['theForm'];
formObject.submit();
}
</script>
HTML 表格:
<form name="theForm" method="get">
<select name="subject" onChange="autoSubmit();">
<option value="null">Select a Subject...</option>
<?php
$sql = "SELECT DISTINCT subj_name, subj_id FROM table1 ORDER BY subj_name";
$result = mysql_query($sql) or die ("couldn't execute query");
while($row = mysql_fetch_array($result))
{
echo ("<option value=\"$row[subj_id]\" " .
($subject == $row["subj_id"] ? " selected" : "") . ">$row[subj_name]</option>");
}
?>
</select>
<?php
if($subject != null && is_numeric($subject))
{
?>
<select name="course" onChange="autoSubmit();">
<option value="null">Select a Course...</option>
<?php
$sql = "SELECT DISTINCT course_id, course_name, subj_id FROM table1 WHERE subj_id = $subject";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo ("<option value=\"$row[course_id]\" " .
($course == $row["course_id"] ? " selected" : "") . ">$row[course_name]</option>");
}
?>
</select>
<?php
}
?>
</form>
在這些行中,只有在回調請求中沒有傳遞 $subject 和 $course 時才應該設置“selected”:
<option value="null" selected="selected">Select a Subject...</option>
...
<option value="null" selected="selected">Select a Course...</option>
否則,您將在每個下拉菜單中獲得兩個標記為選中的選項。 這導致錯誤。
我發現了錯誤:第 14 行中的$country
需要是$course
:
if(isset($_GET["course"]) && is_numeric($_GET["course"]))
{
$course = $_GET["course"];
}
?>
<pre>
if(isset($_GET["course"]) && is_numeric($_GET["course"]))
{
$country = $_GET["course"];
}
</pre>
Here, you are setting a $country variable instead of $course.
**Use this one**
$course= $_GET["course"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.