AJAXを使用してデータを取り込み、2 番目の select 要素に入力する必要があります。簡単に言うと、AJAX は舞台裏で発生する別のページ リクエストにすぎません。これを使用して、単純な HTML ページまたは部分を読み込んで DOM 要素に表示したり、構造化データを動的に取得したりできます。
これを行う最善の方法は、JSON (JavaScript Object Notation) を使用することです。この場合、Javascript を使用して PHP ページへの AJAX 呼び出しを行い、その PHP ページはクエリ文字列で最初の選択要素の値を表す引数を取ります。これにより、MSSQL データベースを呼び出して、2 番目の選択に対応するすべてのオプションを取得し、それらをエコー出力します。次に、AJAX 要求を作成するために使用する Javascript は、応答を解析し、それを JavaScript オブジェクト リテラルとして解釈できるため、結果をループして、必要な処理を行うことができます。
以下に例を示します (AJAX を非常に簡単にするため、jQuery を使用しています)。
フォームページの上部:
$(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);