0

我是一个新手,我正在学习 PHP,所以任何帮助将不胜感激。

我为此苦苦挣扎了一整天

我得到这样的数组:

----已编辑----

Array ( [0] => Array ( [Date] => 2011-02-06 [Time] => 06:48 PM [Entry] => Email sent 0 test ) [1] => Array ( [Date] => 2011-02-06 [时间] => 06:48 PM [条目] => 电子邮件发送 1 个测试)[2] => 数组([日期] => 2011-02-06 [时间] => 06:48 PM [条目] => 已发送电子邮件 2 测试 ) ) 

我的问题是,我想在每一行(显示数组时)添加一个小按钮/链接,以便用户可以删除该特定操作

foreach ( $actionhistory as $row ) {
  foreach ( $row as $key => $value ) {
   echo " foo 删除记录- $value";
  }
  回声' 
'; }

问题:用户现在在他的浏览器中看到了这个:

2011-02-0606:48 PM 电子邮件发送 0 测试
2011-02-0606:48 PM 电子邮件已发送 1 次测试
2011-02-0606:48 PME 邮件发送 2 测试

我想在每个日期之前添加一个链接。因此,当用户单击该链接时,将加载外部页面,并且需要从列表中删除该特定“记录”。

EG 用户想要删除条目

[2] => 数组([Date] => 2011-02-06 [Time] => 06:48 PM [Entry] => Email sent 2 test)

他将单击该条目旁边的链接....这就是我遇到问题的地方。如何删除该条目但保留其余条目?

4

3 回答 3

1

为什么所有这些变量?而且您的阵列构建错误。

$actionhistory[] = array(
  "Date" => date("Y-m-d"),
  "Time" => date("h:i A"),
  "Entry" => "Email sent ".$row." test" //This is actually user action
);

您想要的是通过 javascript 将特定行的操作历史记录发送到 PHP 脚本,该脚本将从数据库中删除该行,并且可能还会从您的表中动态删除该行。您需要向数组中添加另一个元素,这是数据库中的唯一 ID,除非您有一个带有日期/时间/操作的唯一键 - 这看起来很愚蠢!然后使用 JS 库(例如 jQuery),在行中的删除按钮上使用简单的交互,如下所示:

<?php
while ( $data = $query->fetch() ){
  echo '<tr><td....</td>
    <td><input type="button" value="delete" onclick="
      $.post(\'myScript.php?id='.$data['id'].'\',function(d){
        if ( d == 1 ){
          $(this).parents("tr").eq(0).remove();
        }
      });" /></td</tr>';
}
?>

那么myScript.php应该处理$_POST['id'],删除对应的行,如果成功则回显1,因此该行被删除。[已编辑,$_POST,不是 $_GET!]

于 2011-02-07T01:06:35.583 回答
0

我理解的方式是您需要将数组传递给另一个负责删除它的文件。在 MySQL 中,所有行都应该有一个唯一的标识符,因此您需要做的就是将查询字符串中要删除的行的 ID 包含到删除文件中。

如果我误解了您并且您想将数组数据本身发送到另一个文件,您可以序列化数组,对其进行 urlencode 并通过查询字符串传递它。

另一种选择是将所有数组保留在 $_SESSION 中,并通过链接中的查询字符串传递索引。

我希望我能帮助(并理解这个问题)

于 2011-02-07T01:03:35.403 回答
0

非常感谢 - 我通过添加唯一 ID 对其进行了排序,因此单击时仅将 id 传递给外部文件,然后删除数组中的值。感谢 NAAB 的提示!

当我在此处粘贴代码时 - 系统会删除其中最重要的部分,但如果有人需要我的解决方案,请询问,我会发送...

于 2011-02-07T18:54:04.740 回答