我有一个包含col和数据的数据库表,如下所示:
btn_id(int) | description (varchar(100)
1 | Assessment
2 | Registration
3 | Payment
和一个调用它的PHP代码:
<div class="container">
<div class="text-center">
<form action="" method=POST>
<?php
$sql = "SELECT * FROM tbl_buttons ORDER BY 1";
foreach ($PDO->query($sql) as $row)
{
echo '<div class="col-sm-3 col-md-3 portfolio-item">';
echo '<input type="submit" name="desc" value="'.$row['description'].'" class="btn btn-success btn-lg">';
echo '<input type="hidden" name="btn_selected" value="'.$row['btn_id'].'" >';
echo '</div>';
}
?>
</form>
</div>
</div>
echo $_POST['btn_selected'];
这将显示带有Description的按钮,将数据库作为其值。
当我点击任何按钮(带有DB表中的选项=评估,注册,付款)时,我总是得到最后一个数据的btn_id(即btn_id = 3)。我怎样才能输出点击按钮的btn_id呢?
答案 0 :(得分:1)
将php代码更改为:
<div class="container">
<div class="text-center">
<?php
$sql = "SELECT * FROM tbl_buttons ORDER BY 1";
foreach ($PDO->query($sql) as $row)
{
echo '<form action="" method=POST>';
echo '<div class="col-sm-3 col-md-3 portfolio-item">';
echo '<input type="submit" name="desc" value="'.$row['description'].'" class="btn btn-success btn-lg">';
echo '<input type="hidden" name="btn_selected" value="'.$row['btn_id'].'" >';
echo '</div>';
echo '</form>';
}
?>
</div>
</div>
echo $_POST['btn_selected'];
因此btn_selected值只存在于每个表单中,并且不会被覆盖。
答案 1 :(得分:0)
在您的表单提交中,您的隐藏输入字段将是按钮ID。
您可以在php
中获得此字段值,如下所示<?php
$btn_selected=$_POST['btn_selected'];
echo "button value--".$btn_selected;
?>
你的html部分将是
<div class="container">
<div class="text-center">
<?php
$sql = "SELECT * FROM tbl_buttons ORDER BY 1";
foreach ($PDO->query($sql) as $row)
{
echo '<form action="" method=POST>';
echo '<div class="col-sm-3 col-md-3 portfolio-item">';
echo '<input type="submit" name="desc" value="'.$row['description'].'" class="btn btn-success btn-lg">';
echo '<input type="hidden" name="btn_selected" value="'.$row['btn_id'].'" >';
echo '</div>';
echo '</form>';
}
?>
</div>
</div>
答案 2 :(得分:0)
尝试在循环中插入。这样,您只能为整个表单提供一个隐藏文件。它的输出肯定是你点击的btn_id。