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

如何选择所有值?

更新1。它们在请求中传递为:

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

1 回答 1

1

好的,我可以使用下面的代码获得所有这些(感谢来自 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 回答