2

好吧,伙计们,

我正在尝试显示数据库表的内容以及 REMOVE 或 PUSH 按钮。REMOVE 按钮将从数据库中删除所述项目。PUSH 按钮会将项目推送到另一个数据库中,然后通过将变量 push 设置为 true 来 FLAG 表示项目。

我有连接和 while 循环回显数据库中的每个项目以及一个 REMOVE 按钮和一个 PUSH 按钮。回声看起来像这样:

echo '<form method='post' name='$ID' action='$_PHP_SELF'>
    <tr>
        <td width='5%' align='center'>$ID</td>
        <td width='75%'>$content</td>
        <td width='10%' align='center'><input type='submit' name='remove' id='remove' value='REMOVE'></td>
        <td width='10%' align='center'><input type='submit' name='push' id='push' value='PUSH'></td>
    </tr>
</form>';

我遇到的问题是如何设置一个简单的提交代码,该代码将检查表单并推送或删除该特定项目。If/Else 或 Switch 语句不起作用,因为我期望有几十个数据库条目,并且我希望提交代码本身也是动态的。

我开始:

if(isset($_POST['push'])){
 echo "PUSH ".$ID." TO DATABASE";
}

if(isset($_POST['remove'])){
 echo "REMOVE ".$ID." FROM DATABASE";
}

但是这两个都只返回最后一个 $ID 变量。

提前致谢。

4

3 回答 3

2

使用它自己的两个按钮使每个相关行都成为自己的表单。他们都可以提交到同一个页面。此外,将 ID 保留在隐藏字段中(并验证服务器端),而不是作为表单名称。

于 2012-04-11T02:29:00.813 回答
2

一个简单的解决方案是将您的 HTML 输出更改为具有两个表单,每个表单提交一个。你可以保持你的 PHP 完全一样。

编辑:为了动态获取按下按钮的 ID,然后添加一个带有 ID 的隐藏数据字段,如下所示:

<tr>
    <td width='5%' align='center'>$ID</td>
    <td width='75%'>$content</td>
    <td width='10%' align='center'>
        <form method='post' action='$_PHP_SELF'>
            <input type='hidden' value='$ID' name='id'>
            <input type='submit' name='remove' id='remove' value='REMOVE'>
            </form>
    </td>
    <td width='10%' align='center'>
        <form method='post' name='$ID' action='$_PHP_SELF'>
            <input type='hidden' value='$ID' name='id'>
            <input type='submit' name='push' id='push' value='PUSH'>
        </form>
    </td>
</tr>

然后,您的 PHP 将是:

$ID=mysql_real_escape_string($_POST['id']); //Encapsulate in this function to prevent bad IDs causing SQL injections.
if(isset($_POST['push'])){
 echo "PUSH ".$ID." TO DATABASE";
}

if(isset($_POST['remove'])){
 echo "REMOVE ".$ID." FROM DATABASE";
}
于 2012-04-11T02:29:57.830 回答
0

按照本教程创建复选框系统和 php 处理器。 PHP 复选框

您可以通过以下两种方式之一进行操作。如果您希望用户能够通过一个链接一次删除多个项目,您可以这样做。

让用户通过复选框选择尽可能多的行。然后点击“删除”或“推送”按钮,将其发送到另一个页面,并处理每一行。

另一种方法是在每行旁边有一个 REMOVE 和 PUSH 按钮,一次删除或推动一行。我会推荐第一种方法。如果您遵循该指南,则它非常简单。

于 2012-04-11T02:33:14.890 回答