如何在PHP中使用单个提交提交多行表单数据


How to submit the multiple rows form data with a single submit in PHP

这是我的代码。我制作了一个多行表单,将在单个提交中更新。我在论坛上搜索,但没有找到确切的答案。

<form method='POST' action='demo24.php'>
  <table  width="500px" height="500px">
    <tr><th>SETNAME</th><th>POST</th></tr>
    <?php
      $query = "SELECT name,setid FROM `set` LIMIT 0 ,10";
      $result = mysql_query($query) or die(mysql_error()."[".$query."]");
      while($row = mysql_fetch_array($result))
      {
        $output .='<tr><td><input type="text" value="'.$row['name'].' '.$row['setid'].'" name="name'.$row['setid'].'">'.$row['name'].'</td><td><input type="checkbox" value="'.$row['setid'].'" name="setid"></td></tr>';
      }  
      echo $output;
    ?>

    </td><td><input type='submit' value='submit' name='submit'/></td></tr>
  </table>        
</form>

注意,您可以在多个输入字段中使用类似name[]的东西来向服务器发送数组:

<input type="text" name="row[]" />
<input type="text" name="row[]" />
在服务器端,$_POST['row']看起来像这样:
Array (
  [0] => first_input,
  [1] => second_input
)

您可以对所有字段(id, row等)执行此操作,然后循环$_POST['id']等以将所有条目重新组合在一起。确保进行足够的验证,即确保这些字段确实是数组,所有字段都具有相同的大小,等等。


PHP的MySQL家族已被弃用,对它的支持将会消失。请查看PDO或mysql来执行SQL代码。

如果您的表单方法为'post',那么您可以使用以下代码:

if(isset($_POST['submit']))
{
   $query = "SELECT name,setid FROM `set` LIMIT 0 ,10";
   $result = mysql_query($query) or die(mysql_error()."[".$query."]");
   while($row = mysql_fetch_array($result))
   {
      $id = $row['setid'];
      $name = $_POST['name'.$id];
     //here will be you update code. set value will be $name and update where setid = $id
   }
}