チェーンされた選択ボックスは現在正常に動作します。最初の選択ボックスは車両メーカーまたは vmake で、2 番目のボックスは車両モデルまたは vmodel です。現在、ページがロードされたときに vmake 選択ボックスのみが表示され、vmodel ボックスは vmake の値を選択した後にのみ表示されます。私のクライアントは、ページがロードされたときに vmodel と vmake の選択ボックスが表示されることを望んでいます (ユーザーが vmake から選択するまで vmodel ボックスは空になります)。ばかげているように聞こえますが、クライアントは本当にこの方法を望んでいます。
メインページのjqueryコードは次のとおりです
<script type="text/javascript">$(document).ready(function() {
$('#wait_1').hide();
$('#vmake').change(function(){
$('#wait_1').show();
$('#result_1').hide();
$.get("func.php", {
func: "vmake",
drop_var: $('#vmake').val()
}, function(response){
$('#result_1').fadeOut();
setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400);
});
return false;
});
});
function finishAjax(id, response) { $('#wait_1').hide(); $('#'+id).html(unescape(response));
$('#'+id).fadeIn();
}
</script>
これはphpページを呼び出すHTMLです
<select name="vmake" id="vmake">
<option value="" selected="selected">Make</option>
<?php getTierOne(); ?>
</select>
<span id="wait_0">
</span>
<span id="result_1"></span>
これは、データベースを呼び出す getTierOne の PHP スクリプトです。
function getTierOne(){$result = mysql_query("SELECT DISTINCT vmake FROM vmake")
or die(mysql_error());
while($tier = mysql_fetch_array( $result ))
{
echo '<option value="'.$tier['vmake'].'">'.$tier['vmake'].'</option>';
}}
そして最後に、これはphpの残りの部分です
if($_GET['func'] == "vmake" && isset($_GET['func']))
{vmake($_GET['drop_var']);
}
function vmake($drop_var)
{
include_once('db.php');
$result = mysql_query("SELECT * FROM vmake WHERE vmake='$drop_var'")
or die(mysql_error());
echo '<select name="vmodel" id="vmodel" style="width:242">
<option style="width:242" value=" " selected="selected">Model</option>';
while($drop_2 = mysql_fetch_array( $result ))
{
echo '<option style="width:242" value="'.$drop_2['vmodel'].'">'.$drop_2['vmodel'].'</option>';
}
echo '</select> ';}
ページの読み込み時に vmodel ボックスを表示するには、何を変更する必要があるのか わかりません。長い質問で申し訳ありません。