2011-10-20 143 views
0

在一个表单中的php页面上,一个组合框有一个MySQL表中的客户列表customer.另一个组合框包含来自invoice表的invoiceno字段,分别对应于客户记录。如何根据另一个组合框的选定项过滤一个组合框集合?

我想从第一个组合框中选择一个客户,并根据客户从第二个组合过滤invoiceno。任何人都可以帮我完成这件事?

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

回答

1

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

?> 
相关问题