Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用PHP中的数据填充jQuery中的选择列表?_Php_Jquery_List_Select_Populate - Fatal编程技术网

如何用PHP中的数据填充jQuery中的选择列表?

如何用PHP中的数据填充jQuery中的选择列表?,php,jquery,list,select,populate,Php,Jquery,List,Select,Populate,我有一系列的课程,每门课程都有不同数量的课程。因此,我有两个选择列表,一个用于课程,另一个用于与该课程相关的课程。课程选择列表很简单,我在一个foreach循环中从PHP的后端完成。我正在学习一个学生的所有课程: public function createContent($student) { //get student courses //get lessons of each course //get the upcoming lessons $lessons = $this->g

我有一系列的课程,每门课程都有不同数量的课程。因此,我有两个选择列表,一个用于课程,另一个用于与该课程相关的课程。课程选择列表很简单,我在一个foreach循环中从PHP的后端完成。我正在学习一个学生的所有课程:

public function createContent($student)
{
//get student courses
//get lessons of each course
//get the upcoming lessons
 $lessons = $this->getLessons($courses); //need to make use of $lessons to populate lesson list

        foreach($courseArray as $c)
        {               
            $courseSelectList .= '<option id="select"'.$count.' value="'.$c['id'].'">'.$c['fullname'].'</option>';
            $count++;           
        }
//create a Lesson select list in php backend or do it in the front end dynamically with jQuery?
        return $courseSelectList.$lessonSelectList;
}
公共函数createContent($student)
{
//获得学生课程
//学习每门课程
//获取即将到来的课程
$lessons=$this->getLessons($courses);//需要使用$lessons来填充课程列表
foreach($courseArray作为$c)
{               
$courseSelectList.=''.$c['fullname'].';
$count++;
}
//在php后端创建课程选择列表,还是在前端使用jQuery动态创建?
返回$courseSelectList.$lessonSelectList;
}
我的下一步是创建第二个选择列表,其中包含所选课程的课程。此列表的填充方式取决于学生在课程选择列表中选择的内容。所有这些都是动态的,取决于学生,因此课程选择列表中的课程(以及课程)对于每个学生都是不同的,并从数据库中检索。根据学生和课程,我知道哪些课程应该在课程选择列表中。课程是在我第一次检索学生的课程后检索的,如下面代码中的注释所示。我只需要一种方法,根据学生选择的内容填充课程选择列表


我该怎么做呢?任何帮助都会很好。请记住,我是jQuery的初学者

我发现了一个非常有用且简单的jQuery插件


我发现了一个非常有用且简单的jQuery插件


我不打算为您编写代码,从一个非常高的层次上讲,如果没有插件,我会这样做: 创建一个页面,根据传递给它的课程id,从数据库或任何存储位置返回课程列表。 在页面上创建一个javascript(或jquery)ajax方法,将课程id传递到此页面,并从返回的数据中清除和创建课程下拉列表(JSON格式适用于返回的数据)。只要在课程下拉列表中触发更改事件,就调用ajax方法。 看看:


我不打算为您编写代码,从一个非常高的层次上讲,如果没有插件,我会这样做: 创建一个页面,根据传递给它的课程id,从数据库或任何存储位置返回课程列表。 在页面上创建一个javascript(或jquery)ajax方法,将课程id传递到此页面,并从返回的数据中清除和创建课程下拉列表(JSON格式适用于返回的数据)。只要在课程下拉列表中触发更改事件,就调用ajax方法。 看看:


您需要根据所选课程的价值发出AJAX请求。我在下面假设课程选择的id为“courseSelect”:

$('#courseSelect').bind('change', function() {
    var _t = $(this);
    var val = _t.val();
    $.ajax({
        url: '/path/to/script.php',
        data: 'c='+val,
        success: function(html) {
            $('#lessonSelect').html(html);
        }
    });
});
这背后的策略是,一旦为课程选择了不同的选项,就会调用“script.php”“script.php”将由浏览器发送选项的值,并可作为
$\u GET['c']
访问。请求返回后将调用success函数,html参数将设置为等于script.php内部输出的所有内容(通过
echo
print
,php发出的错误语句,所有输出)

从这个意义上讲,script.php只需从数据库中选择给定课程的课程列表,然后输出所有
Lesson
标记。由于服务器端脚本的输出是HTML标记,因此我将参数命名为success函数HTML

script.php

<?php
    // Validate existence and proper type of input variable
    // I am assuming here that the 'value' for the option for each course is an
    // integer primary key for a table in your database
    if(!isset($_GET['c']) || !is_numeric($_GET['c']))
        exit();
   $course = intval( $_GET['c'] );
   // Select all of the lessons for the selected course from your database 
   // and output them as HTML Option elements.
?>

您需要根据所选课程的价值发出AJAX请求。我在下面假设课程选择的id为“courseSelect”:

$('#courseSelect').bind('change', function() {
    var _t = $(this);
    var val = _t.val();
    $.ajax({
        url: '/path/to/script.php',
        data: 'c='+val,
        success: function(html) {
            $('#lessonSelect').html(html);
        }
    });
});
这背后的策略是,一旦为课程选择了不同的选项,就会调用“script.php”“script.php”将由浏览器发送选项的值,并可作为
$\u GET['c']
访问。请求返回后将调用success函数,html参数将设置为等于script.php内部输出的所有内容(通过
echo
print
,php发出的错误语句,所有输出)

从这个意义上讲,script.php只需从数据库中选择给定课程的课程列表,然后输出所有
Lesson
标记。由于服务器端脚本的输出是HTML标记,因此我将参数命名为success函数HTML

script.php

<?php
    // Validate existence and proper type of input variable
    // I am assuming here that the 'value' for the option for each course is an
    // integer primary key for a table in your database
    if(!isset($_GET['c']) || !is_numeric($_GET['c']))
        exit();
   $course = intval( $_GET['c'] );
   // Select all of the lessons for the selected course from your database 
   // and output them as HTML Option elements.
?>

最简单的方法(至少从jQ的角度来看)是在服务器端调用并生成HTML

例如,假设现有PHP代码生成以下HTML:

<select id="select_1">
  <option value="0">Please select...</option>
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
  <option value="3">Option 3</option>
  <option value="4">Option 4</option>
</select>
<div id="container_for_select_2"></div>
现在,在
getselect.php
中,我们可以执行如下操作:

<?php

  switch ($_GET['option']) {
    case 1:
      echo '<select><option value="1">An option</option><option value="2">Another option</option></select>';
      break;
    case 2:
      echo '<select><option value="3">An option</option><option value="4">Another option</option></select>';
      break;

    // ...etc...

  }

?>

最简单的方法(至少从jQ的角度来看)是在服务器端调用并生成HTML

例如,假设现有PHP代码生成以下HTML:

<select id="select_1">
  <option value="0">Please select...</option>
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
  <option value="3">Option 3</option>
  <option value="4">Option 4</option>
</select>
<div id="container_for_select_2"></div>
现在,在
getselect.php
中,我们可以执行如下操作:

<?php

  switch ($_GET['option']) {
    case 1:
      echo '<select><option value="1">An option</option><option value="2">Another option</option></select>';
      break;
    case 2:
      echo '<select><option value="3">An option</option><option value="4">Another option</option></select>';
      break;

    // ...etc...

  }

?>


此链接包括使其工作所需的PHP和javascript代码,非常可靠的答案。此链接包括使其工作所需的PHP和javascript代码,非常可靠的答案。我如何在ajax中引用PHP类文件中的方法?将您的类包含在服务页面中,让页面调用类方法并输出结果。调用页面上的ajax基本上像普通请求一样工作,服务页面写出的数据是数据t