-1

ここに私のhtmlがあります:

<select id="list" name="list" size=10 multiple>
  <option value="xx">opt-1</option>
  <option value="yy">opt-2</option>
  <option value="zz">opt-3</option>
</select>

私はこれの価値を次のように得ています:

var list_v = $("#list").val();

次のように .post 呼び出しを使用して送信します。

'&mylist='+list_v

私はこのように収集しているcgiで(perl):

@list_values = $q->param('mylist');

選択したすべてのオプションを @list_values 配列の 1 つの要素として取得しています。すべての値を配列の個別の要素として取得する必要があると思いました!!!

したがって、たとえば、誰かが opt-1 と opt-2 を選択した場合、@list_values [xx yy] (2 つの要素として 2 つの値) に期待します

しかし、代わりに [xx,yy ] (1 つの要素として 2 つの値) を取得しています。

4

1 に答える 1

3

私があなたを正しく理解しているなら、あなたは.serializeメソッドを利用するべきです。list[]=xx&list[]=yy2つのオプションが選択された場合に表示されます。そうすれば、データパラメータ文字列を手動で作成する必要がなくなります。

$.ajax({
    url: '/post-collector',
    method: 'POST',
    data: $('#your-form').serialize()
});

ここで違いを確認できます:http://jsfiddle.net/QeqvF/

于 2013-01-20T21:17:36.717 に答える