0
    ComBox1(Allows Multiple Selection)             ComboBox2
    __________________________________             __________

    Fruits                                         
    Vegetables

果物と野菜のアイテムを含むcombobox1(複数選択可能)があります。

ComboBox2の項目は、ComboBox1に基づく選択に応じて入力されます。

「果物」が選択されている場合、ComboBox2のアイテムは次のようになります:リンゴ、オレンジ、バナナ

    ComBox1(Allows Multiple Selection)             ComboBox2
    __________________________________             __________

    Fruits  (selected)                             Apple
    Vegetables                                     Orange
                                                   Banana

果物と野菜の両方の場合、ComboBox2のアイテムは次のようになります:リンゴ、オレンジ、バナナ、大根、レタス。

    ComBox1(Allows Multiple Selection)             ComboBox2
    __________________________________             __________

    Fruits  (selected)                             Apple
    Vegetables (selected)                          Orange
                                                   Banana
                                                   Radish
                                                   Lettuce

PHPを使用してこれを行う必要があります。Jquery、ajax、javascriptを使用するなど、この機能をどのように実現できるかを誰かが提案できますか?

実際には、データベースから両方のコンボボックスのアイテムをフェッチします。

4

1 に答える 1

2

jqueryを使用して、jqueryライブラリをインクルードします

<script type='text/javascript' src="http://code.jquery.com/jquery.js"></script>

次に、次のスクリプトを使用します。

<script type='text/javascript'>
 $(document).ready(function(){
  $('#typeSelect').change(function(){
   $.ajax({
    url:"data.php",
    data: { type: $('#typeSelect').val() },
    type: "POST",
   }).success(function(data){
    $("#itemSelect").html(data);
   });
  });
 });
</script>

このフォームの使用:

<form>
 <select id="typeSelect" multiple="multiple">
  <option value="fruit">Fruit</option>
  <option value="vege">Vegetables</option>
 </select>
 <select id="itemSelect" multiple="multiple">

 </select>
</form>

そして、data.phpに次のように配置します。

<?php
$a = array(
 "fruit" => array(
  "apples" => "Apples",
  "bananas" => "Bananas", 
  "pears" => "Pears"
 ),
 "vege" => array(
  "toma" => "Tomatoes", 
  "cucu" => "Cucumber", 
  "rad" => "Radish"
 )
);

foreach($_POST['type'] as $type){
 foreach($a[$type] as $key => $val){
  echo "<option val='{$key}'>{$val}</option>";
 }
}

もちろん、最初の選択ボックスにPHPを入力し、投稿された値に基づいて配列を生成しますが、選択ボックスに入力する方法を示すために、静的配列を使用しました。

于 2013-03-25T18:34:36.853 に答える