0

フォームで動的に依存するドロップダウンを作成する必要があったため、JS 自動送信機能を使用するこのソリューションを見つけました。

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

次に、最初のドロップダウンで onchange イベントを使用して、自動送信機能を呼び出します。

<label>Campus:</label>
<select name="campus" onchange="autoSubmit();">
<option VALUE="null"></option>
<?php

//Popula a lista com os cursos do DB

$sql = "SELECT id,nome FROM campus";
$countries = mysql_query($sql,$conn);
while($row = mysql_fetch_array($countries))
{
if($row[nome]==$campus)
        echo ("<option VALUE=\"$row[nome]\" selected>$row[nome]</option>");
    else
    echo ("<option VALUE=\"$row[nome]\">$row[nome]</option>");
 }

 ?>
</select>

これにより、要素「campus」が 2 番目のドロップダウン SELECT ステートメントで使用されるように設定されます。

$campus = $_POST['campus'];
...
<label>Curso:
<span class="small">curso corrente</span>
</label>
<select name="curso">
<option VALUE="null"></option>
<?php

$consulta2 = "SELECT curso FROM campus_cursos WHERE campus = \"" . $campus . "\"";
$cursoslista = mysql_query($consulta2,$conn);
while($row = mysql_fetch_array($cursoslista))
{
    echo ("<option VALUE=\"$row[curso]\">$row[curso]</option>");
}

?>
</select>

このコードは機能していますが、問題は、最初のドロップダウンが変更されるたびにこれを行うとアクションの URL にリダイレクトされるため、この方法ではフォームにアクション属性を設定できないことです。これが機能するフォームです:

<form  name="dados" method="POST" onsubmit="return validar();">

アクション属性がないと、送信ボタンを使用して他のすべての要素のデータを正しい URL に送信できません。これを行う方法はありますか?

4

2 に答える 2