因此,我有一个循环,该循环显示了我数据库中的数据,每行将创建一个按钮,稍后将用于激活/停用用户。现在我的问题是单击按钮后,action.php的输出是这样的
action.php?course_action = 1&action = activate&course_action = 2&action = activate&course_action = 3&action = activate&course_action = 4&action = activate&course_action = 5&action = activate&course_action = 6&action = activate&course_action = 7&action = activate&course_action = 8&action = activate
按下按钮后,它似乎存储了输入中的所有值,预期的输出仅仅是这样
action.php?course_action = 1&action =激活
我完全忘记了如何使用php或只是一个借口。无论如何希望你们分享一些知识
<form action="db_connection/action.php" method="get">
<?php
$learningcenters = json_decode(learningCenters());
foreach ($learningcenters as $obj) {
echo '<tr>
<td>'.$obj->lc_id.'</td>
<td class="txt-oflo">'.$obj->lc_name.'</td>
<td>'.$obj->lc_emailadd.'</td>
<td>'.$obj->lc_contactnum.'</td>
<td class="txt-oflo">'.$obj->lc_datereg.'</td>
<td><span class="text-success">'.$obj->lc_timereg.'</span></td>
<td>
<input type="hidden" name="course_action" value='.$obj->lc_id.'>
<input type="hidden" name="action" value="activate"/>
<input type="submit" class="act-user" value="Activate User"></input>
</td>
</tr>';
}
?>
</form>
答案 0 :(得分:0)
具有name
属性的提交按钮在单击时将包含在表单数据中。要管理与value
不同的字幕,请使用button
元素。应该没有理由阻止发送其他表单数据。
要使PHP更适合作为嵌入式语言,您应该经常关闭<?php
标签,而不是从字符串生成HTML输出。这也可以帮助您开发MVC或类似的模式。
要获取每发送一次按钮单击可获得的其他数据,请考虑一种组合字符串格式,例如:
作为分隔符。
<?php
var_dump($_GET);
?>
<form>
<?php
foreach ([3,5,6] as $id)
{
?>
<button name="action" type="submit" value="activate:<?php echo $id;?>">Activate</button>
<?php
}
?>
</form>
您甚至可以使用数组参数。这种方法还使您可以一次对复选框选中的多个项目执行操作。
<?php
var_dump($_GET);
if(isset($_GET['action']) && is_array($_GET['action']))
foreach ($_GET['action'] as $id => $action)
echo "<div>$id: $action</div>"
?>
<form>
<?php
foreach ([3,5,6] as $id)
{
?>
<button name="action[<?php echo $id;?>]" type="submit" value="activate">Activate</button>
<?php
}
?>
</form>