我想列出数据库中的成员,每个成员旁边有两个按钮(删除成员和更改信息)。下面是目前为止的代码,但问题是我不知道如何从输入按钮(放在id属性中)中检索成员id。怎么可以这样做?
目前在MemberView.php中的代码:
public function ShowMembers($memberIds) {
$i = 0;
foreach ($memberIds as $memberId) {
$listOfMembers =
"<b>Name:</b> $fNames[$i] $lNames[$i]
<input type='submit' id='$memberId' name='delete' value='Delete member' />
<input type='submit' id='$memberId' name='changeInfo' value='Change info' />
$i += 1;
}
$html = "<form method='post'>
<p>$listOfMembers</p>;
</form>";
return $html;
}
public function TriedToDelete() {
if (isset($_POST[delete])){
return $_POST[delete];
}
}
答案 0 :(得分:2)
您有几个选项可以处理您要完成的任务:
GET
代替POST
。您可以使查询字符串类似于?action=delete&id=$memberId
。尝试:
foreach ($memberIds as $memberId) {
$listOfMembers = "<b>Name:</b> $fNames[$i] $lNames[$i]
<a href=\"page.php?action=delete&id=$memberId\">Delete member</a>
<a href=\"page.php?action=changeInfo&id=$memberId\">Change info</a>";
$i += 1;
}
id
字段。因此,不是用<form></form>
包装完整的东西,而是包装每组按钮:尝试:
foreach ($memberIds as $memberId) {
$listOfMembers = "<b>Name:</b> $fNames[$i] $lNames[$i]";
$listOfMembers .= '<form method="post">';
$listOfMembers .= '<input type="hidden" name="id" value="' . $memberId . '" />';
$listOfMembers .= "<input type='submit' name='delete' value='Delete member' />";
$listOfMembers .= "<input type='submit' name='changeInfo' value='Change info' />";
$listOfMembers .= '</form>';
$i += 1;
}
尝试:
<script>
function submit(button) {
document.getElementById('id').value = button.getAttribute('id');
document.getElementById('action').value = button.getAttribute('name');
button.form.submit();
}
</script>
您将使用的每个按钮:
$listOfMembers .= "<input type='button' id='$memberId' name='delete' value='Delete member' onclick='submit(this);' />";
$listOfMembers .= "<input type='button' id='$memberId' name='changeInfo' value='Change info' onclick='submit(this);' />";
这真的是一个意见问题,但如果你必须使用POST,我会亲自建议第二个选项(每个组的个人表格);否则,第一个(使用GET)将是最简单的。
答案 1 :(得分:1)
<input type='hidden' id='$memberId' name='id' value='$memberId' />
<input type='submit' id='$memberId1' name='delete' value='Delete member' />
<input type='submit' id='$memberId2' name='changeInfo' value='Change info' />
您应该使用存储memberid的隐藏字段。
并使用
获取隐藏字段的值 $id=$_POST['id'];
答案 2 :(得分:1)
第一个id应该是html中两个元素的唯一
在您的情况下,删除和更改按钮ID应该与
不同public function ShowMembers($members) { $i = 0; foreach ($memberIds as $memberId) { $listOfMembers = "Name: $fNames[$i] $lNames[$i] $i += 1; } return $html; }如果您通过表单发布,
表单应该是不同的,否则它将设置两个输入字段,这样您将不知道您实际想要做什么
现在$POST[$_POST['member_id']."_del"]
将是您的del请求
和$POST[$_POST['member_id']."_change"]
将是您的更改按钮
答案 3 :(得分:1)
我建议使用<a>
代码而不是<input type="submit">
,因此它可能看起来像
foreach ($memberIds as $memberId) {
$listOfMembers =
"<b>Name:</b> $fNames[$i] $lNames[$i]
<a href="delete.php?id=$memberId">Delete member</a>
<a href="edit.php?id=$memberId">Change info</a>
$i += 1;
}
您不再需要使用复杂的表单解决方案并依赖于单击按钮的名称