单击/选择动态按钮时,将DB数据存储到隐藏字段

时间:2016-12-06 07:53:25

标签: php html

我有一个包含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呢?

3 个答案:

答案 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。