我是PHP的新手,所以如果这个问题让人讨厌,请原谅我……
我有一个页面,其中列出了数据库中的近150条记录。我希望用户一次只能删除一条记录(没有复选框)。我希望每个名称旁边都有一个删除按钮,当用户单击它时,页面会刷新,并显示更新后的列表和上面的成功消息:"%Name%已成功删除“。(其中%Name%是他们删除的实际名称)
我的问题是:我能用表单做到这一点吗?如果是这样,我应该将Name和delete按钮分配给哪个表单元素?
或者,我是否需要将delete按钮设置为锚元素,并将URL设置为可以处理delete请求的页面,然后将用户重定向回来(我担心的是,只有通过会话变量才能发回“成功”消息,这样可以吗?)
或者,有没有其他我完全不知道的方式?
任何反馈都将非常感谢。谢谢
发布于 2012-04-20 23:26:18
你可以两种方式都做。这里的关键概念是在数据库中有一个像id这样的唯一字段,例如在数据库表中有id、name、username和password字段,所以看看下面这两种方法
1.使用超链接
<?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
<?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.使用表单
<?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
<?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是列出所有信息的页面)
发布于 2012-04-20 23:19:48
为什么必须是a/one表单?你可以使用链接来删除单个条目,比如href="#?job=delete&name=name“,而不是提交按钮,另一个解决方案是为每个条目创建一个表单。
发布于 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,它将发回名称,或者只是从表单的一部分中取出,以向用户显示哪条记录已被删除。
有许多方法可以做到这一点。
https://stackoverflow.com/questions/10248828
复制相似问题