0

下にドロップダウン メニューと空の選択ボックスがあります。

<select name="session" id="sessionsDrop">
    <option value="">Please Select</option>
    <option value='20'>EWYGC - 10-01-2013 - 09:00</option>
    <option value='22'>WDFRK - 11-01-2013 - 10:05</option>
</select> </p> 

$studentSELECT = "";  
$studentSELECT .= '<select name="studenttextarea" id="studentselect" size="6">';
$studentSELECT .= '</select>'; 

上記は次のaddstudent.phpページにあります。

今何が起こるかというと、ドロップダウンメニューから選択された評価に応じてクエリを実行し、データベースからの行が見つかった場合は選択ボックスに学生のリストを表示し、行がない場合はphpコードを持っています見つかった場合、選択ボックスの評価内で学生が見つからなかったことを示すメッセージが表示されるだけです。このコードは以下のaddedstudents.phpページにあり、ajax を介してアクセスされます。

$studentnum = $currentstudentstmt->num_rows();   
$studentSELECT = "";     

if($studentnum == 0){
    $studentSELECT .= "<option disabled='disabled' class='red' value=''>No Students currently in this Assessment</option>"; 
} else {   
    while ( $currentstudentstmt->fetch() ) {
       $studentSELECT .= sprintf("<option disabled='disabled' value='%s'>%s - %s %s</option>", $dbStudentId, $dbStudentAlias, $dbStudentForename, $dbStudentSurname) . PHP_EOL; 
    }
}

echo $studentSELECT;

私が抱えている問題は、ユーザーがPlease Selectオプションを選択した場合でも、評価が見つからないというメッセージが表示されることです。これは、明らかにこのクエリにモジュールがないため、メッセージを表示する行がないと考えられるためです。しかし、Please Selectオプションが選択されている場合にこれを表示したくありません。選択ボックスを空にしたいだけです。

問題は、jquery を使用してこれを実行しようとしても、選択ボックスが空になり、数ミリ秒後にメッセージが返されることです。

私の質問は、Please Selectオプションがドロップダウンメニューから選択された場合、空の選択ボックスを表示できるようにするための最良の方法は何ですか?

以下はjqueryによるこれの試みです:

$('#sessionsDrop').change( function(){
    if( $(this).val() == '' ){
        $('#studentselect').val('');                   
    }
});
4

3 に答える 3

1

disabled次のように、「選択してください」ボックスのマークアップに追加するだけです。

<select name="session" id="sessionsDrop">
    <option disabled value="">Please Select</option>
    <option value='20'>EWYGC - 10-01-2013 - 09:00</option>
    <option value='22'>WDFRK - 11-01-2013 - 10:05</option>
</select> </p> 
于 2013-01-10T02:08:02.543 に答える
0

これには 2 つのオプションがあります。UI レベル、サーバー レベル、またはその両方でフィルタリングします。

1.) js/jquery レベルで (これを解釈するのがあなたになるように、説明/疑似コードを提供する必要があります)

選択した値が次の場合は除外し、""続行しないでください。@vortextangentの回答と同じで、$('#sessionsDrop').val() != ""続行する必要があるかどうかのみを確認してください

2.)サーバー側のレベルでは、データベースにクエリを実行する前に、これ $_POST['session']または$_GET['session']ドロップダウンの値を含むものがあると想定します

あなたはそれをキャッチする$_POST['session']必要$_GET['session']''あります.

于 2013-01-10T06:04:53.250 に答える
0

最善の方法ではありませんが、jqueryを使用しています...

.ajax({
    success: function () {
        //your current code here 
        if ($('#sessionsDrop').val() == "") {
            $('#studentselect').children().remove();
        }
});
于 2013-01-10T02:11:52.710 に答える