2012-12-30 70 views
0

昨天,我在这个论坛上提出了一个关于如何根据另一个下拉列表更新HTML下拉列表(选择列表)的问题。不幸的是,某些用户并不清楚。但没问题,我发现它是如何工作的。 所以,让我们从脚本开始,将其上传到pastebin:http://pastebin.com/sFhbPAFj使用脚本更新下拉列表

我的目标是什么?

在第一个下拉列表(lecturer_id)中,我有一些讲师名字和那里的ID。这些信息来自PostgreSQL数据库。作为例子,一个选项是如何列表可能是:

X

第二列表应包含讲座教授的课程。又如:

数学

此信息也来自数据库,但它应该是动态的。就像如果我选择Y老师,第二个列表应该与其他课程更新。

问题是,我不知道如何将这些数据从我的PHP应用程序传输到上面的脚本,另一方面,我不知道如何从jQuery脚本中获取lecturer_id我的PHP代码。 (我需要该ID来填充课程列表)

我希望我的问题很清楚。

+1

我会推荐[jsFiddle](http://jsfiddle.net/)共享代码。 – SeinopSys

回答

0

您可以使用jQuery ajax函数调用带有教师ID的数据库以获取课程并更新第二个下拉列表。

Btw用户jQuery为您的所有JavaScript。使用for insted你可以使用jQuery each

2

最好使用AJAX。喜欢的东西:

$("#teacher_select").change(function(){ 
id = $(this).val(); 
$.ajax({ 
       type: "GET", 
       url: "some.php/?id=" + id, // perform a query for all courses taught by this teacher and return html 
       success: function(data){ 
          $("#course_select").html(data); 
          } 
      }); 
}); 

您也可以返回一个JSON对象,并过渡到在客户端HTML(即在success功能),在这种情况下,不要忘了添加dataType:"json"

编辑:检索负载的第一位老师的课程,只是使用相同的ajax请求响应onload事件 - 或JQuery的$(document).ready(); - 这将让您当前选择的老师的课程

+0

谢谢,这真的是一个简单的解决方案。我更喜欢用json作为输出格式。我会检查它是如何工作的:-) –

+0

我知道它应该如此工作。我找不到的唯一方法是如何将其作为默认加载?我的意思是,现在我的课程列表是空的,直到使用第一个下拉列表。但是,我希望在第一个列表中填写第二个列表。 (所以,列表中的第一位讲师的课程) –

+0

请参阅我的编辑 – Matanya