Php 如何改变<;选项>;第三个<;选择>;根据第二次<;选择>;,其中,通过使用jquery ajax更改第一个下拉列表的值来绘制第二个

Php 如何改变<;选项>;第三个<;选择>;根据第二次<;选择>;,其中,通过使用jquery ajax更改第一个下拉列表的值来绘制第二个,php,jquery,html,ajax,select,Php,Jquery,Html,Ajax,Select,我在我的项目中遇到了一个奇怪的情况(针对一个学校管理层),在互联网上找不到合适的解决方案。问题是, 我有三个元素,第一个是选择课程,第二个是选择该课程中的部分,第三个是从该部分中选择课程。代码如下 <select id="class"> <option value="class1">Class 1</option> <option value="class2">Class 2</option> </select&g

我在我的项目中遇到了一个奇怪的情况(针对一个学校管理层),在互联网上找不到合适的解决方案。问题是, 我有三个元素,第一个是选择课程,第二个是选择该课程中的部分,第三个是从该部分中选择课程。代码如下

<select id="class">
    <option value="class1">Class 1</option>
    <option value="class2">Class 2</option>
</select>


<select id="section">
    <!--sections will be drawn here from database using ajax, based on class selected in 1st dropdown-->
</select>


<select id="course">
    <!--when a section is selected in 2nd dropdown, courses of that section will be drawn here from database using ajax-->
</select>
在这一点上,它可以很好地绘制所选类的部分。现在,当在第二个
中选择一个部分时,我想在第三个下拉列表中绘制课程。下面是我的ajax代码

$("#section").change(function(){
       var section = $(this).val();
       $.ajax({
           url: "draw_courses.php?section="+section+"", success: function(courses) {
             $("#course").html(courses);
           } 
        });
  });
这个函数的目的是让section(像在课堂上一样)绘制_course.php,并从数据库中选择该部分的课程,然后在第三个下拉列表中绘制它(就像在第一个下拉列表ie类中一样)
但问题是,由于部分是通过ajax绘制的,因此选择部分不会影响“课程”下拉列表。此外,源代码中不存在这些节。由于我是ajax的初学者,因此无法更好地解释我的问题

  $("#section").on('change',function(){
      //code here
    });

您需要使用
delegate
on
,因为
select
框是动态生成的

$("body").delegate('#section','change',function(){
  //code
});


发布你的php方面,或者你构建整个
select
元素,或者仅仅构建
选项
@ubercooluk:我只是在构建选项,php代码只是从数据库中选择数据并将其回显…好的,我会尝试一下,但是为什么数据没有显示在源代码中。。。使用ajax驱动的数据正常吗。。。???如果我使用.on方法,它会出现在源代码中吗。。因为在我的项目后面,我将使用多达5个动态构建。。
$("body").delegate('#section','change',function(){
  //code
});
$("#section").on('change',function(){
//code
});