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 代码,根据从下拉菜单中选择的评估,它运行一个查询,如果找到来自 db 的行,它会在选择框中显示学生列表,如果没有行找到然后它只是显示一条消息,说明在选择框中的评估中没有找到学生。下面的代码位于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

不是最好的方法,但它与 jquery ......

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

你有两个选择;在 UI 级别或服务器级别或两者上过滤它。

1.)在 js/jquery 级别(我只需要给你一个描述/伪代码,这样你就可以解释这个)

如果选择的值是""然后不继续,则过滤掉;与@vortextangent 的答案相同,仅检查您是否$('#sessionsDrop').val() != ""应该继续

2.)在服务器端级别我假设在你可以查询你的数据库之前你有这个 $_POST['session']$_GET['session']包含下拉列表的值

如果$_POST['session']$_GET['session']两者都是''(空白),你只需要抓住它,你不应该继续进行数据库查询

于 2013-01-10T06:04:53.250 回答