【问题标题】:Passing data from one php generated form to another将数据从一个 php 生成的表单传递到另一个
【发布时间】:2012-09-30 22:02:18
【问题描述】:

我使用 php 从 PostgreSQL 系统生成一个表。用户需要能够选择删除表中的一行,所以我创建了一个“删除?”表格最后一列中的按钮选项。

按钮如下所示:

 echo '<td> <input type="submit" name="'.$row['language'].'" value="Delete?" class="odd" />';

所以按钮获得了带有该行语言的名称属性。

我有两个问题: 1. 最重要的是,我不知道如何访问该字段。最初我以为我可以通过 POST 获取它,例如 name = _$POST['name'],但我需要“语言”字段来获取与该行对应的特定按钮。希望你明白那... 澄清一下,在打印出查询之前不会生成 html 属性名称。然后我需要知道 name 属性才能在 delete.php 中访问它。

  1. 即使我可以从按钮中获取要删除的语言的名称,也可能在数据库中可能存在具有其他属性的其他同名语言,所以我不希望在我删除时删除那些执行删除语句,这意味着我需要来自表的特定行的更多信息。那么我该如何传递更多信息呢?

我一直在考虑隐藏字段,但我不确定如何生成所有信息以及如何将其传递到我的 delete.php 文件。

如果您也有任何其他建议,尽管我愿意接受。

【问题讨论】:

  • 交换名称和值,使值成为语言和名称delete

标签: php forms postgresql post


【解决方案1】:

对此最常见的解决方案是在最后一列中放置一个链接,传递您要在该链接中删除的行的 ID。

链接如下所示:

&lt;a href="delete.php?id=rowid&gt;delete&lt;/a&gt;

不要使用 sumbit,因为每个行 ID 都需要不同的链接。

【讨论】:

【解决方案2】:

您的表是否有一个自动递增且是整数的主键?如果是这样,您可以简单地将其id 字段用于name 属性。因此,如果您的表格如下所示:

id | language
---+---------
 1 | English
 2 | French
 3 | C
 4 | にほんご
 5 | foobar

您的输出中的一行可能如下所示:

echo '<td><input type="submit" name="'.$row['id'].'" value="Delete?" /></td>';

不过,这取决于表单的目标。是否预计能够 删除和编辑?使用 GET 数据创建链接,然后提示输入 确认更简洁,更不容易被滥用。

【讨论】:

    猜你喜欢
    • 2015-12-26
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多