代码之家  ›  专栏  ›  技术社区  ›  Billy ONeal IS4

有没有在PHP中实现“批处理表”的通用方法?[关闭]

php
  •  0
  • Billy ONeal IS4  · 技术社区  · 14 年前

    假设我正在写一些论坛软件。另外,让我们假设这个论坛软件有一个个人消息组件。我希望用户能够检查该列表中的一些消息,然后单击其他地方的“删除”按钮删除所有这些消息。

    另一个类似的应用程序是gmail,或者几乎所有其他类型的webmail应用程序。

    有没有实现这个的通用模式?我可以在每个表行中插入一个数据库行ID,但这看起来像是一个拼凑的过程。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Victor Nicollet    14 年前

    实际上,在每一行中都粘贴一个数据库友好的标识符 这个问题的标准解决方案。在您的情况下,标识符将位于 value 复选框的属性。

    扩展模式是让每个操作接受一个标识符列表,而不是一个标识符列表(这样所有操作都可以作为批处理)。

        2
  •  2
  •   Jan.    14 年前

    通常的解决方法是让浏览器用一个数组发送所有选定的ID。与此类似:

    <input name="test[]" value="123" /> foo<br />
    <input name="test[]" value="133" /> bar<br />
    <input name="test[]" value="3" /> barfoo<br />
    <input name="test[]" value="4" /> foobar<br />
    
    <?php
    if (!empty($_GET['test']) && is_array($_GET['test'])) {
        foreach ($_GET['test'] as $k => $v) {
            echo '<br />delete id' . (int) $v;
        }
    }
    ?>
    

    请注意,我没有运行此代码。所以里面可能有错别字。D