0

我对PHP很陌生,所以如果这个问题令人讨厌,请原谅我......

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

我的问题是:我可以用表格做到这一点吗?如果是这样,我会将名称和删除按钮分配给哪个表单元素?

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

或者,还有其他一些我完全不知道的方法吗?

任何反馈将不胜感激。谢谢

4

5 回答 5

1

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/

至于名称和删除。删除可以是输入、按钮、图像等。名称可以是已删除记录的用户 ID,它会发回名称,或者只是从表单的一部分中获取,以向用户显示删除了哪条记录。

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

于 2012-04-20T15:25:33.820 回答
1

你可以这样做...这里的关键概念是在数据库中有一个唯一的字段,比如 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

删除.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>";
    }
    ?>

删除.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-20T15:26:17.547 回答
1

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

于 2012-04-20T15:19:47.850 回答
0

您可以使用包含您的数据的页面(例如 A)。

当你拥有它时,你可以在每个元素的按钮上“锚定”一个链接(分配一个服装 ID 来识别它)。单击按钮后,您将在内置数组中添加$_GET已删除的记录的 id(obv。您必须删除它)。现在您可以重定向到同一页面 (A)。

在此页面(即您拥有初始数据的同一页面)上,您检查$_GET添加的字段。如果是,则意味着您在删除后到达那里,您可以显示该消息。否则是您第一次进入这里,所以您不必显示任何内容。

于 2012-04-20T15:19:06.633 回答
0

见这里:http ://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml

在某个地方制作一个带有隐藏字段且没有提交按钮的表单,当表单提交时,它会删除具有给定值的行。然后在回显所有行时,在每个行旁边回显一个提交按钮,并带有“submitForm(x)”的onlick,其中“X”是可以确定要在数据库中删除哪一行的某个值。

于 2012-04-20T15:20:16.547 回答