0

抱歉,如果这是一个菜鸟问题,但我仍在加快使用 PHP 的速度,但找不到这个问题的答案。

我有一个 php 脚本,它查询一个 mySQL 表,然后根据结果构建一个 HTML 表。这一切都很好。作为该脚本的一部分,我<td>向每个脚本添加一个<tr>,让用户有机会从数据库中删除每条特定记录,如果他们愿意的话。

为了完成这项工作,我必须能够将该记录的唯一标识符传递给 php 脚本,该标识符作为值之一存在。问题是,我不知道如何传递这个值。

这是我构建 HTML 表的 php 脚本:

    while ($row = mysql_fetch_array($result)) {
        echo 
        "<tr class=\"datarow\">"  .  
            "<td id=\"id_hdr\">"    . $row['id']    . "</td>" .
            "<td id=\"name_hdr\">"  . $row['name']  . "</td>" .

            "<td id=\"btn_delete\">
                 <form action=\"delete_item.php\">
                     <input type=\"image\" src=\"images/delete.png\">
                 </form>
             </td>" .
         "</tr>";
    }

所以,不知何故,我要么需要显式地传递“id”和“delete_item.php”和/或在 php 端找到一种方法来在变量中捕获这个值。如果我能做到这一点,我就自由了。

编辑:尝试执行下面的两个建议,但不能完全实现。以下是我根据阅读这些建议的方式更新表单的方式:

"<td id='btn_delete'>".
    "<form action='scripts/delete_item.php'>".
        "<img src='images/delete.png'>".
        "<input type='hidden' id='uid' value='" . $row['id']    . "'>".
        "<input type='submit' value='Submit'/>".                            
    "</form>".
"</td>" .

然后,在 delete_item.php 中,我有这个:

$id = $_POST['uid'];
$sql = "DELETE FROM myTable WHERE id=$id";
$result = mysql_query($sql);
if (!$result) {
    die("<p>Error removing item: " . mysql_error() . "</p>");
}

但是当我运行它时,我得到了错误:

删除项目时出错:您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法

最后一件事:这种方法给了我一个按钮,在我的图像正下方带有“提交”一词。如果可能的话,我宁愿不要这个。

再次感谢!

4

2 回答 2

2
<form action=\"delete_item.php\">
<input type=\"hidden\" value=\"$row['id']\" name=\"uid\" >
<input type=\"image\" src=\"images/delete.png\">
</form>

唯一的 id 被放置在一个隐藏的输入中。您可以使用

$_POST['uid']

但是你需要提交表格

<input type=\"submit\" name=\"submit\" value=\"delete\" ">
于 2013-07-01T04:32:06.273 回答
2

您可以使用带有 id 参数的锚标记。IE,www.example.com/delete.php?id=20

现在您可以在页面 delete.php 上获取该 id 作为$_GET['id']

使用它,您可以从表中删除数据并通过设置标题返回到所需的页面

如果您需要,您可以对 AJAX 使用相同的逻辑,并且无需重新加载页面,您就可以永久删除该数据。我会推荐 AJAX

于 2013-07-01T04:58:34.273 回答