简体   繁体   English

自动提交动态 select 表格

[英]Auto-submitting dynamic select form

I'm having trouble with my dynamic select forms.我的动态 select forms 有问题。 When the "subject" form is submitted it works perfectly, but when the "course" form is then submitted, the form seems to submit properly (localhost/page.php?subject=1&course=2), but it returns the option back to null so it isn't working with later php that is dependent on the course_id .当提交“主题”表单时,它工作得很好,但是当提交“课程”表单时,表单似乎正确提交(localhost/page.php?subject=1&course=2),但它返回选项回到null因此它不适用于依赖于 course_id 的后来的course_id

Header PHP: 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: Javascript:

<script language="JavaScript">

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

</script>

HTML Form: 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>

In these lines "selected" should only be set if $subject and $course are not passed in callback request:在这些行中,只有在回调请求中没有传递 $subject 和 $course 时才应该设置“selected”:

<option value="null" selected="selected">Select a Subject...</option>    
...
<option value="null" selected="selected">Select a Course...</option>

Otherwise, you'll get two options marked as selected in each dropdowns.否则,您将在每个下拉菜单中获得两个标记为选中的选项。 This cause to bug.这导致错误。

I found the error: $country in line 14 needs to be $course :我发现了错误:第 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM