我有一个下拉菜单和一个空的选择框:
<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('');
}
});
答案 0 :(得分: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>
答案 1 :(得分:0)
不是最好的方式,但它是jquery ......
.ajax({
success: function () {
//your current code here
if ($('#sessionsDrop').val() == "") {
$('#studentselect').children().remove();
}
});
答案 2 :(得分:0)
1。)在js / jquery级别上(我只需要给你一个描述/伪代码,这样你就可以解释这个)
过滤掉所选的值是否为""
然后不要继续;
与@ vortextangent的答案相同,只检查$('#sessionsDrop').val() != ""
是否应该继续
2。)在服务器端级别我假设在你可以查询你的数据库之前你有这个
$_POST['session']
或$_GET['session']
,其中包含下拉列表的值
如果$_POST['session']
或$_GET['session']
都是''
(空格)并且您不应继续使用数据库查询