繁体   English   中英

如何根据另一个组合框的选择项过滤一个组合框收藏集?

[英]How to filter one combo-box collection depending on the selected item of another?

在php页面上的一种形式中,一个组合框包含来自MySQL表customer.的客户列表customer. 另一个组合框包含invoiceno从田间地头invoice表,相应的客户记录。

我想从第一个组合框中选择一个客户,并根据客户从第二个组合框中过滤发票。 谁能帮我做到这一点?

例如,如果我选择“ customer1”,则第二个组合框应显示与“ customer1”相对应的所有invoiceno 我想做到这一点而无需刷新,重新加载或发布页面。 如果我在php变量$customer获得第一选择,对我来说就足够了。 谢谢!

AJAX是您的朋友:

  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);

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM