2011-05-28 23 views
0

私は複数選択リストボックスを持っています。私はon-changeイベントで関数を呼び出しています。マルチセレクションリストから値を渡します。私がそうするとき、私は選択された最初のvaleとすべてのマルチ選択された値を取得しません。複数選択リスト

<select name="cat" multiple="multiple" class="main" onChange="javascript:get_list(this.value);"> 
    <option value="">--Select Category--</option> 
    <?php 
    ////////////////display category////////////////// 
    $cat_details=mysql_query("SELECT category_id,category 
           FROM category_tb 
          ORDER BY category"); 

    while([email protected]_fetch_array($cat_details)){?>       
     <option value="<?=$cat_data['category_id'];?>"<? 
     if($_REQUEST['cat']==$cat_data['category_id']){?> selected="selected"<?php } ?>><?=$cat_data['category'];?></option> 
    <? } ?>       
</select> 

マルチ選択から選択したすべての値をajaxに渡すにはどうすればよいですか?

+0

Ajax? get_listを修正する必要がありますが、それが含まれていないために何が間違っているのかわかりません。 – Quentin

答えて

0

name="cat"からname="cat[]"に変更してください。 選択した値はすべてアレイに格納されます。

0

あなたが

cat[] 

に選択フィールドの名前を設定する必要があり、それに気づいたあなたは

0

トライ何かこの

this.options[this.selectedIndex].value 

のような値の猫の配列を受け取ります複数の選択は、そのために少し複雑なjavascriptが必要です

これを参照してください十分な http://www.mredkj.com/tutorials/tutorial004.html

+0

リンクがいつか消えてしまった – Ibu

0

選択したすべての値を取得するには、すべてのオプションを繰り返し、「選択済み」プロパティをチェックする必要があります。

<!-- html --> 
<select name="cat" multiple="multiple" class="main" onChange="javascript:get_list(this);"> 

// Javascript 
function get_list(sel) { 
    var i = sel.options.length, 
     opt = null, 
     selValues = []; 

    for (; i--;) { 
     opt = sel.options[i]; 
     if (opt.selected) { 
      selValues.push(opt.value); 
     } 
    } 

    console.log(selValues); 
}