php - 如何根据另一个组合框集合的选定项目来过滤一个组合框集合?

标签 php mysql

在表单的 php 页面上,一个组合框包含来自 MySQL 表 customer 的客户列表。 另一个组合框包含来自 invoiceno 字段。发票表,分别对应于客户记录。

我想从第一个组合框中选择一个客户,并根据客户从第二个组合框中过滤发票号。谁能帮我实现这个目标吗?

例如,如果我选择 customer1,第二个组合框应显示与 customer1 相关的所有 invoiceno。我想在不刷新、重新加载或发布页面的情况下执行此操作。如果我在 php 变量 $customer 中获得第一个选择,这对我来说就足够了。谢谢!

最佳答案

AJAX 是你的 friend :

  1. 捕获第一个组合框的onchange事件

  2. 然后通过 AJAX 将所选项目的值发送到您的 PHP 脚本

  3. 您的 PHP 脚本从数据库加载相应的值并返回它们(例如以 JSON 格式)

  4. 最后通过 JavaScript 显示/插入返回的数据。

伪代码:

JavaScript:

function displayData(json)
{
  // Do something
}
document.getElementById("your-combobox").addEventListener("change", function()
{
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function()
  {
    if (xhr.readyState==4 && xhr.status==200)
    {
      displayData( JSON.parse(xhr.responseText) ); // Call displayData with the JSON
    }
  };
  xhr.open("GET", "your-script.php?combobox1="+encodeURIComponent(this.value));
  xhr.send(null); // Send AJAX request
});

PHP:

<?php

if (!isset($_GET['combobox1'])) exit('{}');

$data = GetDataFromDB_AsArray();

echo json_encode($data);

?>

关于php - 如何根据另一个组合框集合的选定项目来过滤一个组合框集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839206/

相关文章:

php - 在 php html 中从 mysql 填充下拉列表

PHP 和 jquery 函数

java - jdbc 使用自增字段向数据库中插入数据

php - MySQL不会更新

mysql - 选择持续时间超过 1 秒的状态

php - SQL查询将两列与另一表中的一列进行比较(并获取两个值)

php - 将数据从 `HTML` 登录表单传递到 `PHP`,以便从 `MySQL' 数据库检索数据

php - 创建一个动态的单页 Web 应用程序

php - 适用于高级 PHP 开发人员的 MVC

mysql - 如何优化我的数据库?