2013-03-05 61 views
0

有什么方法可以在下拉列表中选择某个值,并根据该选择显示第二个下拉列表? 我知道如何用普通单词来完成它,但如果我使用变量名呢?如果在第一个下拉列表中选择了一个值(使用变量),则显示第二个下拉列表?

University Name: <select name="university" id="university"> 
<?php 
    while($row = mysql_fetch_array($uniName)) { 
     echo "<option>" . $row['uni_name'] . "</option>"; 
    } 
?> 
</select> 
<br/> 
Course Name: <select name='course' id='course'> 
<?php 
    while($row = mysql_fetch_array($courseNames)) { 
     echo "<option>" . $row['course_name'] . "</option>"; 
    } 
?> 
</select> 

因此,您可以看到,在第一个下拉列表中,我已经从我的数据库中添加了所有检索到的大学名称。我也为课程做了同样的事情。

现在我怎么可以修改代码如下:

$(document).ready(function() { 
    $('#course').hide(); 

    $('#university').change(function() { 
     if ($('#university option:selected').text() == "Harvard University"){ 
      $('#course').fadeIn('slow'); 
     } 
     else { 
      $('#course').fadeOut('slow'); 
     } 
    }); 
}); 

而是“哈佛大学”,我想提出一个变量有根据用户的选择。像$ university_name这样的东西,然后我将创建一个新的查询,并只显示属于某个$ university_name的课程。

+0

每个大学都有一个ID,不是吗?这比比较字符串要好得多。同时,您可以检查所选项目的索引并根据该索引进行确定。虽然,如果你想提供不同的课程,这取决于所选择的大学,我建议做一个AJAX调用并获取相应的课程'onChange'。 – ATaylor 2013-03-05 14:19:21

+0

是的,每个uni都有唯一的ID。正如你所说,我想提供不同的课程,所以我会尝试使用AJAX。谢谢 – shieldcy 2013-03-05 14:22:03

+0

如果您需要设置帮助,请务必询问。 – ATaylor 2013-03-05 14:24:48

回答

0

正如我在评论中所述,我建议使用AJAX填充course框。

$.ajax("getCourses.php", { 
    data: { UID: uid }, 
    type: 'POST', 
    done: function(result) { 
     $("#course").html(result); 
}); 

这将填充选择标签,无论getCourses有输出。

UID当然是有问题的大学的ID。

This page有您需要的所有信息。有关详细信息和示例,Google是您的朋友:)

+0

感谢您的帮助 – shieldcy 2013-03-05 14:31:49

+1

@ savvas999不客气。如果可以的话,我总是很乐意提供帮助。 – ATaylor 2013-03-05 14:32:54

相关问题