【发布时间】:2011-05-17 16:10:07
【问题描述】:
我有一个从数据库中提取的项目的动态列表,其中列表包含 0 到 N 个项目。每个项目都列在 HTML 表中的一行中,并带有一个提交按钮。我需要知道这些按钮中的哪一个,具体来说,是在 $_POST 上单击并获取该项目的值。
我目前的方法是使用数组。但是,$_POST 值返回数组中的所有项目,而不仅仅是被单击的项目。更重要的是,数组值与从数据库中提取的值不相关。同一个图片提交按钮可能会被重复点击并产生不同的值。
<?php
else if (isset($_POST["deleteItem"]))
{
foreach ($_POST["deleteItem"] as $value) :
WishList::Delete($value);
endforeach;
}
?>
<form method="post" action="">
<table id="WishListTable">
<?php
$wishlist = WishList::GetAllByID($userID);
foreach ($wishlist as $item)
{
echo "<tr><td>" . $item->Description . "</td>";
echo "<td>";
if ($item->InStock)
{
$primaryEmailAlreadyUsed = true;
echo "In Stock";
}
else {
echo "Out of Stock";
}
echo "</td>";
echo "<td style=\"text-align:center;\"><input type=\"image\" src=\"/images/deleteX.gif\" border=\"0\" alt=\"Delete\" id='" . $iteml->ID . "' name=\"deleteItem[]\" value=\"" . $item->ID . "\" ></td>";
echo "</tr>";
}
?>
</table>
</form>
【问题讨论】:
-
按下按钮时 $_POST["deleteItem"] 的输出是什么?
-
“数组值与从数据库中提取的值不相关” 不应该先解决这个问题吗?这是为什么呢?
-
必须是按钮吗?可能只是一个链接吗? IE。 thisscript.php?deleteid=10
-
@gmadd:提醒一下,不应该使用
GET来更改数据。查看en.wikipedia.org/w/… -
感谢所有 cmets。以下是一些答案:1)示例输出:单击的项目从数据库中的愿望清单中删除,页面重新加载(没有删除的项目。2)值不相关:这让我感到困惑。我知道所显示项目的唯一 ID。相反,我的数组返回不同的个位数值。如果我注释掉函数调用并且只打印_r()数组,如果我反复单击它,我可以接收相同输入项的不同值 3)图像按钮无疑是装饰性的,但我知道有一种正确的方法可以做到这一点,我只是还没找到。
标签: php arrays post dynamic-data