【问题标题】:Python Flask getlist of checkboxes returns empty listPython Flask getlist of checkboxes返回空列表
【发布时间】:2021-03-22 18:40:59
【问题描述】:

我正在使用 html 表格来显示一些数据,其中复选框作为第一列,因此用户可以选择多行并同时删除它们。创建复选框的 html 代码如下:

<td>
    <input type="checkbox" name="checkbox{{row .index}}"
        value={{row .index}}>
    {{row .like}}
</td>

我正在尝试获取所选行的所有索引的列表,因此我可以将它们传递给将从数据库中删除行的函数。目前我只是使用这两行来获取列表,但我每次都得到一个空列表:

    print(request.form.getlist('checkbox'))
    return 'Done'

我在某处犯了愚蠢的错误吗? PS。我几乎将整个 html 文档放在一个表单上,因为它是一个非常简单的页面,只是让事情变得更容易。

【问题讨论】:

    标签: python html forms flask checkbox


    【解决方案1】:

    问题在于您的复选框选项的名称。当您使用变量时,它们都是不同的。尝试使用此名称:

    name="checkbox"
    

    在这行代码中:

    <input type="checkbox" name="checkbox{{row .index}}"
    

    【讨论】:

    • 谢谢@IoaTzimas,我到了某个地方,但不完全在那里......现在打印出来了:['&lt;built-in', '&lt;built-in'] 取决于选中了多少个复选框。知道为什么吗?
    • 您确定在 html 文件的复选框中传递了正确的值吗?
    • 这就是我想要弄清楚的。我在另一个线程中看到有人说要添加 value={{row .index}}&gt; 部分,但我似乎找不到任何相关信息。在 pycharm 中,我在该特定部分收到警告说“此处不允许使用属性 .index”,但我忽略了它,因为我不知道它是什么意思或为什么不知道。我只是相信那个说我应该使用上述行的人。
    • 检查如何使用 Flask 将值传递给 html,你会发现很多信息
    • 什么意思?就像在这种情况下我为什么要将数据从 python 发送到 html?
    【解决方案2】:

    我终于让它工作了。 IoaTzimas 的答案是其中之一,但 ['&lt;built-in'] 问题已通过将 value={{row .index}} 更改为 value={{data.index(row)}} 得到解决。实际上很明显,因为行的索引是在列表“数据”中搜索的。小错误。感谢您的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多