返回动态选择为空onChange

Return dynamic select to null onChange

本文关键字:onChange 选择 动态 返回      更新时间:2023-09-26

我有两个select框,第二个框依赖于第一个框中的选择。我想让第二个选择框(course)在第一个框(subject)改变时具有null的值。如能提供帮助,我将不胜感激。

这是我尝试过的:

Javascript:

function autoSubmit() {
    var formObject = document.forms['theForm'];
    formObject.submit();
}
PHP:

<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>
<select name="course" onChange="autoSubmit();">        
<option value="null">All Courses</option>        
<php
if($subject != null && is_numeric($subject))
{
$sql = "SELECT DISTINCT subj_id, course_id, course_name FROM table1 
  WHERE subj_id = $subject ORDER BY course_name
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo ("<option value='"$row[course_id]'" " . ($course == $row["course_id"] ? 
  " selected" : "") . ">$row[course_number] - $row[course_name]</option>");        
}
}
?>
</select>
</form>

你可以把onChange的第一个选择,在autoSubmit():

this.form.course.value='null';

this.form.course.selectedIndex=0;

这样get的值将是?subject=[the_subject]&course=null(然后$course == $row["course_id"]将为false)。

(http://jsfiddle.net/HMT34/)