如何用PHP中的数据填充jQuery中的选择列表?
我有一系列的课程,每门课程都有不同数量的课程。因此,我有两个选择列表,一个用于课程,另一个用于与该课程相关的课程。课程选择列表很简单,我在一个foreach循环中从PHP的后端完成。我正在学习一个学生的所有课程:如何用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
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