首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php -在单页表单提交中删除单个记录

问php -在单页表单提交中删除单个记录
EN

Stack Overflow用户
提问于 2012-04-20 23:09:38
回答 5查看 6.1K关注 0票数 0

我是PHP的新手,所以如果这个问题让人讨厌,请原谅我……

我有一个页面,其中列出了数据库中的近150条记录。我希望用户一次只能删除一条记录(没有复选框)。我希望每个名称旁边都有一个删除按钮,当用户单击它时,页面会刷新,并显示更新后的列表和上面的成功消息:"%Name%已成功删除“。(其中%Name%是他们删除的实际名称)

我的问题是:我能用表单做到这一点吗?如果是这样,我应该将Name和delete按钮分配给哪个表单元素?

或者,我是否需要将delete按钮设置为锚元素,并将URL设置为可以处理delete请求的页面,然后将用户重定向回来(我担心的是,只有通过会话变量才能发回“成功”消息,这样可以吗?)

或者,有没有其他我完全不知道的方式?

任何反馈都将非常感谢。谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-20 23:26:18

你可以两种方式都做。这里的关键概念是在数据库中有一个像id这样的唯一字段,例如在数据库表中有id、name、username和password字段,所以看看下面这两种方法

1.使用超链接

代码语言:javascript
复制
<?php
mysql_connect("fostname","username","password");
mysql_select_db("database_name");
$q = mysql_query("SELECT * FROM tbl_name");
if(mysql_num_rows($q)>0)
{
echo"<table>";
echo "<tr><td>name</td><td>action</td></tr>";
while($name = mysql_fetch_assoc($q))
{
?>

<tr><td><?php echo $name['name'];?></td><td><a href="delete.php?id=<?php echo $name['id'];?>">Delete</a></td></tr>
<?php
}

echo "</table>";
}
?>

这就是你在列表页面中要做的事情...现在看一下delete.php,它需要在超链接中定义的路径上

delete.php

代码语言:javascript
复制
<?php
mysql_connect("fostname","username","password");
mysql_select_db("database_name");
$id = $_GET['id'];
$q = mysql_query("delete from tbl_name where id = '$id'");
header("Location: list.php");
?>

2.使用表单

代码语言:javascript
复制
<?php
    mysql_connect("fostname","username","password");
    mysql_select_db("database_name");
    $q = mysql_query("SELECT * FROM tbl_name");
    if(mysql_num_rows($q)>0)
    {
    echo"<table>";
    echo "<tr><td>name</td><td>action</td></tr>";
    while($name = mysql_fetch_assoc($q))
    {
    ?>

    <tr><td><?php echo $name['name'];?></td><td><form action='delete.php' method='post'> <input type='hidden' value='<?php echo $name["id"];?>'></form></td></tr>
    <?php
    }

    echo "</table>";
    }
    ?>

delete.php

代码语言:javascript
复制
<?php
    mysql_connect("fostname","username","password");
    mysql_select_db("database_name");
    $id = $_POSTs['id'];
    $q = mysql_query("delete from tbl_name where id = '$id'");
    header("Location: list.php");
    ?>

(注意: list.php是列出所有信息的页面)

票数 1
EN

Stack Overflow用户

发布于 2012-04-20 23:19:48

为什么必须是a/one表单?你可以使用链接来删除单个条目,比如href="#?job=delete&name=name“,而不是提交按钮,另一个解决方案是为每个条目创建一个表单。

票数 1
EN

Stack Overflow用户

发布于 2012-04-20 23:25:34

PHP会话是保存在用户身上的服务器端数据,并通过cookie进行跟踪。除非您专门发送数据,否则数据不会发送给用户。

http://www.php.net/manual/en/session.examples.basic.php

您可以为页面上的每条记录创建一个单独的表单,也可以通过javascript单击其中一条记录并提交来填写表单。您可以重新加载页面并告诉用户是否成功,也可以通过ajax发送并更新页面的各个部分。

http://www.w3schools.com/ajax/ajax_intro.asp

你可以直接使用javascript或者在js之上开发的东西,比如jquery或者moo工具来让事情变得更简单。以下是关于jquery中的ajax函数的一些数据:

http://api.jquery.com/jQuery.ajax/

就名称和删除而言。Delete可以是输入、按钮、图像等等..名称可以是已删除记录的用户id,它将发回名称,或者只是从表单的一部分中取出,以向用户显示哪条记录已被删除。

有许多方法可以做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10248828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档