2つのドロップダウンリスト、カテゴリおよびアイテムを作成したいとします。他のドロップダウンリストの選択に基づいて1つのドロップダウンリストを作成する
車のカテゴリを1つ選択すると、アイテムのドロップダウンリストにHonda、Volvo、Nissanが表示されます。
phoneというカテゴリのいずれかを選択すると、アイテムのドロップダウンリストにこのiPhone、Samsung、Nokiaが必要です。
どうすればいいですか? 私はプレーンなHTMLではできないことを知っています。
2つのドロップダウンリスト、カテゴリおよびアイテムを作成したいとします。他のドロップダウンリストの選択に基づいて1つのドロップダウンリストを作成する
車のカテゴリを1つ選択すると、アイテムのドロップダウンリストにHonda、Volvo、Nissanが表示されます。
phoneというカテゴリのいずれかを選択すると、アイテムのドロップダウンリストにこのiPhone、Samsung、Nokiaが必要です。
どうすればいいですか? 私はプレーンなHTMLではできないことを知っています。
WORKING DEMO http://jsfiddle.net/kasperfish/r7MN9/3/
cars=new Array("Mercedes","Volvo","BMW","porche");
phones=new Array('Samsung','Nokia','Iphone');
populateSelect();
$(function() {
$('#cat').change(function(){
populateSelect();
});
});
function populateSelect(){
cat=$('#cat').val();
$('#item').html('');
if(cat=='car'){
cars.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='phone'){
phones.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
}
を更新しました:あなたが好きなだけの配列を追加することができるようするためにeval()を使用しました。 JSFIDDLE DEMO
cars=new Array("Mercedes","Volvo","BMW","porche");
phones=new Array('Samsung','Nokia','Iphone');
names=new Array('Kasper','Elke','Fred','Bobby','Frits');
colors=new Array('blue','green','yellow');
populateSelect();
$(function() {
$('#cat').change(function(){
populateSelect();
});
});
function populateSelect(){
cat=$('#cat').val();
$('#item').html('');
eval(cat).forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
最終目標が何であるかによって、これを達成できる方法はたくさんあります。ここには2つの最も一般的なものがあります。
これは基本的なプロセスです:オプションで埋め初期ドロップダウンで
AJAX(最も少ないページのロードで最もシームレス):
AJAXを使用したくない場合は、フォームを非常に簡単にサーバー側ハンドラにPOSTし、カテゴリドロップダウンから値を取得し、アイテムドロップダウンの値を見つけてカテゴリのドロップダウンの値を設定して無効にするHTMLレスポンスをレンダリングして(カテゴリを変更する場合は、戻るボタンを使用する必要があります)、アイテムのドロップダウンに値を設定します。 (jQueryを使って)
私はそれがあまりにも長ったらしい得ることなくカバーするために非常に幅広いトピックですが、それが十分明確に願っています。 –
ありがとうございました。 – sapan
配列をMySQLデータから取得する場合はどうすればよいですか?手伝ってくれますか?ありがとう! – xjshiya
@xjshiya - あなたの特定のケースでは遅すぎるかもしれませんが、一般的な答えとして、最も効果的な方法は、ページサーバー側にajax呼び出しを使用することです。そのページはクエリを実行し、結果をajaxまたはxmlとして返します。たとえば、フィールドを作成するために使用します。 –