Авто-отправка формы динамического выбора - PullRequest
1 голос
/ 17 июля 2011

У меня проблемы с моими формами динамического выбора. Когда форма «субъект» отправлена, она работает отлично, но когда форма «курс» затем отправляется, форма кажется отправленной правильно (localhost / page.php? Subject = 1 & course = 2), но возвращает параметр обратно null, поэтому он не работает с более поздним php, который зависит от course_id.

Заголовок 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>

Ответы [ 3 ]

0 голосов
/ 17 июля 2011

Я нашел ошибку: $country в строке 14 должно быть $course:

if(isset($_GET["course"]) && is_numeric($_GET["course"]))
{
 $course = $_GET["course"];
}
?>
0 голосов
/ 11 августа 2011
<code><pre>
if(isset($_GET["course"]) && is_numeric($_GET["course"]))
{
     $country = $_GET["course"];
}
Здесь вы устанавливаете переменную $ country вместо $ course. ** Используйте этот ** $ course = $ _GET ["course"];
0 голосов
/ 17 июля 2011

В этих строках "selected" должно быть установлено только если $ subject и $ course не переданы в запросе обратного вызова:

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

В противном случае вы получите две опции, помеченные как выбранные в каждом раскрывающемся списке. Это вызывает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...