1

選択リストの PHP 配列を作成したいと考えています。リストには動的なオプションがあり、オプションは JavaScript の助けを借りて埋められます。次のページですべてのオプションを取得したい。そこで、オプションの配列を作成したいと思います。これを完了する別の方法はありますか?誰でも私を助けることができますか?よろしくお願いします。

<script type = "text/javascript">
 var val = "";
  function removeOptions(selectbox) {
val = selectbox.value;
for (var i = selectbox.options.length-1; i>=1; i--) {
    if (selectbox.options[i].selected) {
        addOption(document.form1.list2,val,val);
        selectbox.remove(i);
        document.form1.list1.focus();
    }
}
}

  function addOption(selectbox,optiontext,optionvalue ){
  var optn = document.createElement("OPTION");
  optn.text = optiontext;
  optn.value = optionvalue;
  selectbox.options.add(optn);
  }</script>

  //list1
<select name="list1" size="7" multiple="multiple" id="jumpMenu" onchange="removeOptions(this)" style="width:200px">
      <option>Choose Area...</option>
      <?php foreach($dbh->query($sql) as $row){
       $a=$row['name'];?>
        <option value="<?php echo $a?>"><?php echo $a?></option>
  <?php  }?>
   </select>
    //list2 
    <select name="list2" size="7" multiple="MULTIPLE" id="list2" style="width:170px">
     </select>
4

1 に答える 1

1

まず、選択ボックスで複数を使用したい場合は、この選択ボックスの名前に鋭角括弧を含める必要がname="list1[]"ありname="list2[]"ます。これにより、PHP はこれが値の配列であることを認識します。

2 番目: jQuery を学ぶ - 最初は難しいように思えるかもしれませんが、多くの時間を節約し、将来的にブラウザーの互換性の問題を解決できます。そして、jQuery はあなたの a*s を今後何度も保存します。

あなたの目的のために、onchangeイベントを使用するだけでなく、選択したオプションをあるオプションから別のオプションに、またはすべて別のオプションに移動する2つのマルチセレクトボックスの間に追加の4つのボタンを実装することをお勧めします。この種の複数選択は、下の図のようになります。

マルチセレクトボックス

最初のボタン>>で 1. 選択のすべてのオプションが 2 番目のボタンに移動し、4 番目のボタンでその逆になります<<。2 番目のボタン>では、選択されたオプションのみが 2 番目の選択に移動し、3 番目のボタンではその逆になります<

これにより、ボタンのクリックイベントのみをキャッチします... jQueryを使用すると本当に簡単です...

于 2012-05-31T10:56:06.743 に答える