您应该使用AJAX来提取数据并填充第二个选择元素。简而言之,AJAX 只是发生在幕后的一个单独的页面请求。您可以使用它来加载简单的 HTML 页面或部分 HTML 页面并将其显示在 DOM 元素中,或者您可以使用它来动态检索结构化数据。
最好的方法是使用 JSON(JavaScript Object Notation)。在这种情况下,您将使用 Javascript 对 PHP 页面进行 AJAX 调用,并且该 PHP 页面将在查询字符串中采用一个参数,该参数表示第一个选择元素的值。这样,您将调用您的 MSSQL 数据库以获取第二个选择的所有相应选项,然后将它们回显。反过来,您用来发出 AJAX 请求的 Javascript 可以解析响应并将其解释为 JavaScript 对象字面量,从而允许您循环遍历结果并使用它们做您想做的事情。
这是一个示例(我使用的是 jQuery,因为它使 AJAX 变得非常简单)。
在表单页面的顶部:
$(document).ready(function() {
$('#select1').change(function() {
var select1val = $(this).val();
$.getJSON('/path/to/response.php', 'select1=' + select1val, function(response) {
$('#select2').empty();
if(response) {
for(var option in response) {
$('<option/>').val(option.value).html(option.label).appendTo($('#select2'));
}
}
});
});
});
然后您的 response.php 页面应如下所示:
<?php
$select1 = $_GET['select1'];
// Do validation here, to make sure it's a legitimate value for select1. Never trust the
// user input directly.
// Replace this with whatever code you use to make DB queries.
$options = $mydb->query("SELECT value,label FROM select2_options WHERE select1_value=?", $select1);
echo json_encode($options);