0

複数選択フォーム コントロールがあります (図 1)。複数の値を選択すると、Firefox は両方の値を送信します (図 2)。しかし、最後の値のみが入力値としてコントローラーに送信されます (図 3)。これらすべての値をコントローラーに渡すにはどうすればよいですか?

  <form action="html_items/search" method="post" >

    <!-- Criteria --> 
    <div style="float:none;">
      <label>Content Provider </label>
      <select multiple id="content_provider" name="content_provider">
        <option value="FLR">Flare</option>
        <option value="SLDT">Slashdot</option>
      </select>
    </div>

    <input type="submit" value="Search" />

  </form>

図。1

パラメータapplication/x-www-form-urlencoded
content_provider FLR
content_provider SLDT
図. 2

PARAMs[{"content_provider"=>"SLDT", "controller"=>"html_items", "action"=>"search"}]
...
fig. 3

ありがとう
ティム

4

1 に答える 1

1

<select>最初に、選択した要素の配列を作成する場合は、次のような名前を付ける必要があります。<select name='foo[]'>

次へ... 何も選択されていない場合、何も表示されません。これは理にかなっていますが、少し困惑しました。左の選択が検索結果で、右が完成したリストである ajax を実行していました。

送信ボタンに追加し.click(function(){});て、左側のすべてのアイテムをjQueryで選択するように設定し、アイテムがパラメーターに配列として表示されました。以下の例では、最初のアイテムが表示されるはずです。

<select multiple id="content_provider" name="content_provider">
        <option value="FLR" selected>Flare</option>
        <option value="SLDT">Slashdot</option>
</select>
于 2011-01-03T00:54:12.227 に答える