これが非常に簡単な手順です。メインスケルトンだけを表示します。フラッシュミートの追加はあなたの側にあります。
2つの<select>
があるとします。 ajax.php
で このように:
<select id="parent">
<option value="1">value1</option>
<option value="2">value2</option>
<option value="3">value3</option>
<option value="4">value4</option>
</select>
<select id="child">
</select>
では、何が必要ですか? 2番目の<select>
にデータを入力する必要があります その選択のイベントで。
これがjavascriptの部分です(ajax.php)
<script type="text/javascript">
$(function(){
$('#parent').change(function(){ //on change event
var parentVal = $('#parent').val(); //<----- get the value from the parent select
$.ajax({
url : 'process.php', //the url you are sending datas to which will again send the result
type : 'GET', //type of request, GET or POST
data : { parentValue: parentVal}, //Data you are sending
success : function(data){$('#child').html(data)}, // On success, it will populate the 2nd select
error : function(){alert('an error has occured')} //error message
})
})
})
</script>
これにより、リクエストがprocess.php
に送信されます
process.php
が登場しました
ここでは、2番目の<select>
にデータを入力するためのデータが必要です
ここで、<select>
の内部に何が入りますか ?
<option value="someValue">someText</option>
次のようなものを出力する必要があります:
<option value="11">value11</option>
<option value="12">value12</option>
<option value="13">value13</option>
<option value="14">value14</option>
価値とその中のテキストはあなたのニーズで満たされます。
データベースから取得されるため:
- 親の選択値は
process.php
で取得できます$_GET['parentValue']
を使用 - その値を使用して、データベースにクエリを実行します
- 次に、データベースから返された結果から、ループ
while
を使用します 、foreach
またはfor
(取得する方法によって異なります)、<option value="someValue">someText</option>
を作成します 。 - 完了です!
複数選択の場合
生活を少し楽にするために、選択された複数選択 を使用できます。
アドバイス
mysql_*
非推奨です。代わりにPDOを使用してください。 へのリンクは次のとおりです。チュートリアル