2012-11-05 109 views
0

我是新来的PHP,我想知道如何创建一个类似于删除按钮的东西,用于删除将从动态增长的数组中生成的列表中的项目。动态生成删除按钮

我的意思的一个例子是这样的:

<?php 
if (isset($_REQUEST['foo'])) 
{ 
    if (isset($_SESSION['words'])) 
    { 
     $_SESSION['words'][] = 'added word'; 
    } 
    else 
    { 
     $_SESSION['words'] = array('cat', 'dog', 'you', 'me'); 
    } 

    foreach ($_SESSION['words'] as $key => &$value) 
    { 
     echo "<p>" . 
      $value . 
      " - <input type='submit' name='delete_" . 
      $value . 
      "' value='Delete Entry' /></p>"; 
    } 

    if (isset($_REQUEST['clear'])) 
    { 
     session_destroy(); 
    } 
?> 

其中,每按一下按钮是被发送到我的脚本将回声出与按键阵列。

我想删除按钮链接到看起来像一个功能:

function delete_entry($index) 
{ 
    unset($_SESSION['words'][$index]); 
    $_SESSION['words'] = array_values($_SESSION['words']); 
} 

就是我问甚至可能吗?

+0

我读了几次,并不知道你的实际目标是什么。具体为什么你会使用会话来处理这个问题。用户在这里做了什么?如果我们知道我们可能会提出一种方法。就目前而言,我无法想到一个真实的案例web场景,其中发布的代码会产生很大的意义 –

+0

这只是一个简单的例子,我想我没有很好地说明它。基本上会有一个表单,用户可以输入ID号码并按下一个按钮,将这些ID添加到列表中。我正在寻找一种方法来生成删除按钮,该列表中的每个条目都是数组,并将这些删除按钮与其各自条目的索引关联起来。 – soflaz

+0

是存储在数据库中的这些id号码吗?或以某种方式与其他用户共享? –

回答

1

您的单词数组似乎存储在您的会话变量中,所以我假设您要删除/添加单词。这个怎么样...?

  1. 有一个隐藏字段中的每个单词一个单独的表格说的一句话就是:

    所以在for循环: echo "<form><p>".$value." - <input type='submit' value='Delete Entry' /></p><input type=\"hidden\" name=\"delword\" value=\"".$value."\"/></form>";

  2. if(isset[$_REQUEST['delword']])从会话数组中删除它(做这之前你做你的回声循环(你可以使用array_search找到元素,然后运行未设置为你建议)

让我知道你是否想让我详细说明这个建议。

+0

我尝试了您的建议,似乎是在正确的轨道上。然而,我很困惑,我如何从我的PHP脚本中的隐藏字段获得$值 – soflaz

+1

$ _REQUEST ['delword'] –

+0

就是这样!我现在已经开始工作了。谢谢你的耐心启庆和影子,我真的很感谢 – soflaz