如何为两个输入插入一次数据具有相同的名称

时间:2016-09-08 16:38:23

标签: php html forms

请看一下 Website interface

我只能点击提交<button>来插入这些数据。 我希望只使用一次提交<button>两次提交这些数据。

这是我的代码。 正如您所见,我for循环了<form>

<?php
 for($x=1; $x<=2; $x++)
   {
?>
<div class="col-lg-6">
<label>Passenger <?php echo $x ?> </label>
 <form role="form" method='post'>
    <div class="form-group">
          <label>Title</label>
          <label class="radio-inline">
        <input type="radio" name="gander" value="Mr" checked>Mr
          </label>
          <label class="radio-inline">
                 <input type="radio" name="gander"  value="Ms">Ms
          </label>
      </div>
      <div class="form-group">
          <label>Enter name of Passenger</label>
          <input class="form-control" name='name'>
      </div>
      <div class="form-group">
      <label>Enter Passenger Id <?php echo $x ?></label>
     <input class="form-control" placeholder="960529-01-6925" name='ic'>
     </div>
     <button type="submit" class="btn btn-default" name="addbtn" method="post">Submit Button</button>
    </form>
    </div>

    <?php
   }
  ?>

这是isset按钮代码

    <?php
     if(isset($_POST["addbtn"]))
       {

 $ganderphp = $_POST["gander"];
 $namephp = $_POST["name"];
 $icphp = $_POST["ic"];
 $sql = "INSERT INTO `passenger_data`(`pass_gender`,`pass_name`,`pass_ic`,`Username`)  VALUES ('$ganderphp','$namephp','$icphp','$username')";
 if (mysqli_query($conn, $sql)) {
   echo $sql;
 }else {
   echo "Error: " . $sql . "<br>" . mysqli_error($conn);
 }
   }

?>

它不是用户友好的,因为用户只能首先在其中一个表单上提交数据。 我确实尝试从循环中取出提交按钮,但它不起作用。 我需要一个解决方案,使用户只能为所有这些数据提交一次。

基于一些研究,也许是数组[]并且每个都可以做到这一点,但我只是不知道如何使用它。

感谢任何答案。

1 个答案:

答案 0 :(得分:1)

首先,在<form>循环之外取<button>并提交for元素,然后更改name属性,如下所示:

name="gander[<?php echo $x; ?>]"
name='name[<?php echo $x; ?>]' 

name='ic[<?php echo $x; ?>]'

因此,您的 HTML 表单将如下所示:

<div class="col-lg-6">
    <form role="form" method='post'>
<?php
    for($x=1; $x<=2; $x++){
?>
    <label>Passenger <?php echo $x ?> </label>
    <div class="form-group">
          <label>Title</label>
          <label class="radio-inline">
        <input type="radio" name="gander[<?php echo $x; ?>]" value="Mr" checked>Mr
          </label>
          <label class="radio-inline">
                 <input type="radio" name="gander[<?php echo $x; ?>]"  value="Ms">Ms
          </label>
      </div>
      <div class="form-group">
          <label>Enter name of Passenger</label>
          <input class="form-control" name='name[<?php echo $x; ?>]'>
      </div>
      <div class="form-group">
      <label>Enter Passenger Id <?php echo $x ?></label>
     <input class="form-control" placeholder="960529-01-6925" name='ic[<?php echo $x; ?>]'>
     </div>
    <?php
    }
    ?>
    <button type="submit" class="btn btn-default" name="addbtn" method="post">Submit Button</button>
    </form>
</div>

提交后,处理您的表单:

if(isset($_POST["addbtn"])){
    for($x = 1; $x <= 2; ++$x){
        $ganderphp = $_POST["gander"][$x];
        $namephp = $_POST["name"][$x];
        $icphp = $_POST["ic"][$x];

        // construct the query and execute it

    }
}

旁注:了解prepared statements因为您的查询现在容易受到SQL注入的影响。另请参阅how you can prevent SQL injection in PHP