获取post方法的不同名称

时间:2016-04-05 04:19:08

标签: php mysql html-table

我的PHP代码存在问题。我有一个包含数据库数据的表。在表中我有一个包含name属性的输入。当我已经从数据库加载数据时,属性名称具有相同的值。所以,如果我想发布它们,只需要输入最后一个输入名称。这是我的代码:

<html>
  <head>
    <title>Table PHP</title>
  </head>
  <body>
    <form action="execute.php" method="POST">
     <table>
        <tr>
           <th>No.</th>
           <th>Registration Number</th>
           <th>Customer Name</th>
           <th>Action</th>
        </tr>
        <?php
    include "connect.php";
    $sql = mysql_query("SELECT numreg,name FROM registration WHERE (numreg NOT IN(SELECT validation FROM tablevalidation)) ");
    $no = 1;
    while($result = mysql_fetch_array($sql)){
        echo "
        <tr>
            <td>$no.</td>
            <td><input type='hidden' name='numreg' value='$result[numreg]' />$result[numreg]</td>
            <td>$result[name]</td>
            <td><input type='submit' name='validation' value='Validation' /></td>
        </tr>";
        $no++;
    }
?>
     </table>
    </form>
  </body>
</html>

使用上面的代码,input name ='numreg'将为每个输入标记生成相同的值。因此,如果我在表单中使用POST方法,即使我选择了第一条记录,也只会执行最后一条记录。我怀疑这是因为输入标签属性名称具有相同的值。那么,我如何在输入标签中获取不同的属性名称来解决我的问题?请帮忙。

1 个答案:

答案 0 :(得分:0)

使用以下代码。您需要将numreg定义为数组,以便显示post中的所有记录。将name='numreg'更改为name='numreg_".$no."',以便为所有人定义您的唯一numreg。

 <html>
  <head>
    <title>Table PHP</title>
  </head>
  <body>
    <form action="execute.php" method="POST">
     <table>
        <tr>
           <th>No.</th>
           <th>Registration Number</th>
           <th>Customer Name</th>
           <th>Action</th>
        </tr>
        <?php
    include "connect.php";
    $sql = mysql_query("SELECT numreg,name FROM registration WHERE (numreg NOT IN(SELECT validation FROM tablevalidation)) ");
    $no = 1;
    while($result = mysql_fetch_array($sql)){
        echo "
        <tr>
            <td>$no.</td>
            **<td><input type='hidden' name='numreg_".$no."' value='$result[numreg]' />$result[numreg]</td>**
            <td>$result[name]</td>
            <td><input type='submit' name='validation' value='Validation' /></td>
        </tr>";
        $no++;
    }
?>
     </table>
     **<input type='hidden' id='totalRecords' name='totalRecords' value='<?php echo $no; ?>' />**
    </form>
  </body>
</html>

<?php

if($_POST['validation'])
{
    for($i=1;$i<=$_POST['totalRecords'];$i++)
    {
        **echo $_POST['numreg_$i']."<br>";**
    }
}
?>