6

我正在尝试在我的 HTML 中使用复选框,将这些复选框返回到我的 python 后端,然后在单击该框时增加三个计数器。

现在我的 HTML 如下并且工作正常:

<form method="post">
    <input type="checkbox inline" name="adjective" value="entertaining">Entertaining
    <input type="checkbox inline" name="adjective" value="informative">Informative
    <input type="checkbox inline" name="adjective" value="exceptional">Exceptional
</form>

然后在我的python后端我有以下内容:

def post(self):
    adjective = self.request.get('adjective ')

    if adjective :
        #somehow tell if the entertaining box was checked
        #increment entertaining counter
        #do the same for the others
4

2 回答 2

8

当您的表单有多个具有相同name属性的复选框时,在提交表单时请求将具有该名称的多个值。

您当前的代码用于Request.get获取一个值,但这只会在有多个值时检索第一个值。相反,您可以使用Request.get_all(name)(in webapp) 或Request.get(name, allow_multiple=True)(in webapp2) 获取所有值。这将返回一个(可能为空的)列表,其中包含该名称的所有值。

以下是您可以在代码中使用的方法:

def post(self):
    adjectives = self.request.get('adjective', allow_multiple=True)
    for a in adjectives:
        # increment count
        self.adjective_count[a] += 1 # or whatever

        # do more stuff with adjective a, if you want

    # do other stuff with the request
于 2012-11-06T00:33:47.707 回答
0

更改name =“”并将其与值相同会不会更容易,所以您可以问

如果娱乐:

如果信息丰富:

我不是 python 程序员,只是告诉你不

于 2012-11-06T00:21:36.997 回答