使用php中的下拉菜单对数据进行排序和检索

时间:2014-04-02 23:20:25

标签: javascript php mysql

我的网页上有两个下拉菜单。一个是课程列表,另一个是学生列表。我想要做的是,当在课程菜单中进行选择时,它将更新学生菜单以仅列出该课程中的学生。

所有课程和学生数据都保存在MySQL数据库中。用于检索我想要的结果的SQL语句不是问题。我有那些想通了。问题是我不知道如何在不使用提交按钮的情况下获得一个下拉菜单来更新另一个。有没有办法让课程菜单在更改时调用php函数,这会更新学生菜单吗?

我已经查看了几个类似的问题,但是当第二个菜单更新时,很多菜单会重置第一个菜单。我需要在页面上打印选定的课程和学生。

这可以用PHP完成,还是Javascript会更优选?如果有人能指出正确的方向,那将非常感激。

2 个答案:

答案 0 :(得分:0)

  

有没有办法让课程菜单在更改时调用php函数,这会更新学生菜单?

是。对此的嗡嗡声是AJAX。

您最终将使用JavaScript和PHP来执行此操作。实际的实现非常复杂,所以我将为您列出基本步骤。

  1. (JavaScript)绑定课程下拉菜单的change事件。
  2. (JavaScript)当该事件被触发时,捕获所选课程并将XMLHttpRequest与所选课程一起发送到您的服务器。
  3. (PHP)捕获选定的课程,并运行SQL语句以获取学生。
  4. (PHP)将学生列表转换为文本格式(JSON,XML,分隔文本等)以发送回浏览器(使用echoprint等)。< / LI>
  5. (JavaScript)填充学生下拉菜单。

答案 1 :(得分:0)

这样做的一般方法是使用jQuery向您的下拉选择器添加一个钩子,并在页面的另一部分上触发AJAX加载,并将其作为HTML片段检索到的数据( )或JSON数据变成一个(更难)。

一个非常快速和脏的版本是抓取页面的一部分并使用$.load()重新填充当前文档:

$('#select1').on('change', function() {
  $('#select2').load('select.php #select2', 'select1=' + $(this).val())
})

这是一个粗略的想法:当您的第一个选择框发生变化时,请加载select.php页面或您正在使用的任何内容,并添加参数select=N,其中N被选中值。然后它会删除#select2部分并替换它。