1

クライアント側で以下のように選択しました:

<select multiple="multiple" id="reason" class="input-xlarge">
  <option value="001">reason1</option>
  <option value="002">reason2</option>
  <option value="003">reason3</option>
  <option value="004">reason4</option>
  <option value="005">reason5</option>
</select>

データは、以下のコードでサーバーに送信されます。

var reason = $('#reason').val();
$.ajax({
  data: {'reason': reason},
  ...
});
...

そしてサーバー上で私は:

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
arguments = self.request.arguments()
for argument in arguments:
    if self.request.get(argument):
        self.response.out.write(argument+': '+self.request.get(argument)+'<br>')

その結果、いくつかの理由が選択された場合でも、次のことがわかります。

reason[]: 002

すべての値を選択するにはどうすればよいですか?

Upd1 . それらはリクエストで次のように渡されます。

reason%5B%5D=001&reason%5B%5D=002&reason%5B%5D=003&reason%5B%5D=004
4

1 に答える 1

1

OK、以下のコードでそれらすべてを取得できます (gae irc のlericsonに感謝):

reasons = self.request.get_all('reason[]')
for reason in reasons:
    logging.info(reason)

しかし、サーバー側でのフィールド値のハードコーディングを想定しているため、私はそれが好きではありません。そのため、javascript を変更してreason.join()reason.

于 2012-06-25T16:34:43.150 に答える