使用 php 中的下拉菜单对数据进行排序和检索
Sort and retrieve data with drop down menus in php
我的网页上有两个下拉菜单。一个是课程列表,另一个是学生列表。我想做的是,当在课程菜单中进行选择时,它将更新学生菜单以仅列出该课程中的学生。
所有课程和学生数据都保存在MySQL数据库中。检索我想要的结果的 SQL 语句不是问题。我已经想通了。问题是我不知道如何在不使用提交按钮的情况下让一个下拉菜单更新另一个下拉菜单。有没有办法让课程菜单在更改时调用 php 函数,这将更新学生菜单?
我已经浏览了几个类似的问题,但是其中很多问题最终会在第二个菜单更新时重置第一个菜单。我需要在最后的页面上打印所选课程和学生。
这是可以用PHP完成的,还是Javascript更可取?如果有人能指出正确的方向,那将不胜感激。
有没有办法让课程菜单在更改时调用 php 函数,这将更新学生菜单?
是的。 这方面的流行语是AJAX。
你最终将使用JavaScript和PHP来做到这一点。 实际的实现相当复杂,所以我将为您列出基本步骤。
- (JavaScript)绑定课程下拉菜单的
change
事件。 - (JavaScript)触发该事件时,捕获选定的课程,并将XMLHttpRequest与所选课程一起发送到您的服务器。
- (PHP) 捕获所选课程,然后运行 SQL 语句以获取学生。 (
- PHP)将学生列表转换为文本格式(JSON,XML,分隔文本等)以发送回浏览器(使用
echo
,print
等)。 - (JavaScript)填充学生下拉菜单。
一般的方法是使用 jQuery 将钩子添加到下拉选择器,并在页面的另一部分触发 AJAX 加载,使用作为 HTML 片段检索的数据(简单)或转换为 JSON 数据(更难)填充这些数据。
一个非常快速和肮脏的版本是抓取页面的一部分并使用$.load()
重新填充当前文档:
$('#select1').on('change', function() {
$('#select2').load('select.php #select2', 'select1=' + $(this).val())
})
这是一个粗略的想法:当您的第一个选择框更改时,加载select.php
页面或您正在使用的任何内容,并添加参数select=N
其中N
是所选值。然后,它会撕下#select2
部分并替换它。
相关文章:
- 使用JSP从服务器检索和显示图像
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 通过Magento的网络服务检索运费
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过php页面将数据库值检索到jquery自动完成框中
- 检索WordPress RSS提要,并按javascript的字母顺序排序
- React Native ListView 不会在排序或检索新数据后更新
- 如何在 ydn-db 中检索对象的排序列表
- 检索两个列表,对值进行排序和比较,然后显示所有结果
- 按子值排序并检索其他子值
- 对我来说,以排序的方式检索这些信息的最佳方式是什么
- 通过JavaScript从CRM 2011检索可排序电子邮件列表
- 检索列表的值,然后对列表进行排序
- Firebase对特定记录的索引进行排序和检索
- 检索已排序handsontable实例中的隐藏标头
- 在javascript中使用json检索的数据时遇到问题,无法对数组进行排序
- 检索未排序列表和列表项中的值
- 使用 php 中的下拉菜单对数据进行排序和检索