3

複数の値を選択し、矢印をクリックすると 2 番目の選択ボックスに追加できる複数選択ボックスがあります。これで、この部分は正常に機能し、複数の値を選択できるようになりました。ただし、2 番目の選択ボックスの値を変数に渡すと、変数はリストの最後の項目の値のみを表示し、すべての項目を表示しません。

Javascript コード

   <script type="text/javascript">  
   $().ready(function() {  
   $('#add').click(function() {  
   return !$('#select1 option:selected').remove().appendTo('#select2');  
   });  
   $('#remove').click(function() {  
   return !$('#select2 option:selected').remove().appendTo('#select1');  
   });  
   });  
   </script>  

HTMLコード

 <form action="insert_email_visitor_list1.php" method="get" name="form1" target="_self" id="form1">

    <select multiple id="select1" class="mulitiselect" name="select1">  
    <option value="1">Date/Time</option>  
    <option value="2">Company</option>  
    <option value="3">Location</option>  
    <option value="4">Nof Pages / Visit</option>
    <option value="5">Traffic Source</option>  
    <option value="6">Search Term</option>  
    <option value="7">Report</option>
    <option value="8">Classification</option>  
    <option value="9">Owner</option>
    <option value="10">Phone</option>
    <option value="11">Town</option>
    <option value="12">City</option>
    <option value="12">Country</option>
    <option value="12">Hostname</option> 
    </select>  


    <a href="#" id="add"><img src="images/add-arrow.png" alt="" /></a>
         selected Columns
    <a href="#" id="remove"><img src="images/remove-arrow.png" alt="" /></a>  


    <select multiple id="select2" name="select2" class="mulitiselect"></select>  

    <div class="bottom-img"><img src="images/popup-bottomimg.png" alt="" /></div>

    <button>
    <img src="images/info-icon.png" alt="" />
    </button>
    <input type="submit" name="send" id="send" value="Submit" />
    </form>

PHP コード

   $select2 = $_GET['select2'];
   echo "$select2";

基本的に、私はこれを正しい方法で行っているかどうかについて、いくつかのアドバイスを求めていますか?

ありがとう

4

1 に答える 1

6

PHP に渡すフィールドには[]、たとえばselect2[]. これがないと、PHP は渡された値を単一の値として扱い、渡された LAST 値だけが $_GET に入れられます。

名前で使用[]すると、PHP はそれを多値フィールドとして扱うようになり、$_GET に配列が作成されます。

$_GET['select2'][0] => 'first option selected';
$_GET['select2'][1] => 'second option selected';

等...

パラメータmultipleは純粋にクライアント側のものであり、PHP はそれが複数選択であることを認識する方法がないことに注意してください。それは単に同等のものを見るでしょう

select2=foo&select2=bar&select2=baz

POST/GET に到着し、最後に渡された値を選択します。

于 2013-07-29T14:54:16.463 に答える