我如何通过 html 输入表单 foreach 并插入多行或基于选定日期字段的一行?

how do I foreach through html input form and insert multiple rows or one based on a selected date field?

我如何通过 html 输入表单进行 foreach 并插入多行或基于选定日期字段的一行?换句话说,当用户输入 "name" "description" 和 "shift" 然后选择一个或多个日期时。 PHP 然后将根据所选日期的数量为新行或多行输入相同的信息。

<?php

 if(isset($_REQUEST['submit']))
{
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "xxxx", "xxxx", "xxxx");

// Check connection
if($link === false){
die("| ERROR: Could not connect. " . mysqli_connect_error());
}
$name = mysqli_real_escape_string($link, $_REQUEST['name']);
$desc = mysqli_real_escape_string($link, $_REQUEST['description']);
$shift = mysqli_real_escape_string($link, $_REQUEST['shift']);
$date = mysqli_real_escape_string($link, $_REQUEST['daterange']);


$sql = "insert into db (name,description,shift,evdate) values ('$name',              '   $desc','$shift','$date')";
$sql2 = "insert into db (name,description,shift,evdate) values ('$name', '                    '$desc','$shift','$insert')";

if ($date=0) {
      $result = mysqli_query($link, $sql);

}else{
    $daterange = explode(',',$date);
    foreach($daterange as $insert) {    
$result = mysqli_query($link, $sql2);

 }
 }



 if(mysqli_query($link, $sql)){
 echo "";
  } else{
  echo "| ERROR: Could not able to execute $sql. " . mysqli_error($link);
  }

 if ($link->multi_query($sql) === TRUE) {
 echo "It Worked..... Maybe!!!!!!";
  } else {
  echo "Error: " . $sql . "<br>" . $link->error;
   }
   }
   $link->close();
    ?>
    <form action="test_insert.php" method="post">

<div class="col col-lg-2 col-lg-offset-0">
<div class="form-group col-lg-offset-0 col-lg-12">
    <label for="Name">Employee Name:</label>
    <input type="text" name="name" placeholder="First & Last Name" id="name"           required>
    <p class="help-block col-lg-12">First and Last Name Please.</p>
  </div>
  </div>
    <div class="col col-lg-offset-0 col-lg-2">
    <div class="form-group col-lg-12">
    <label for="description">Description:</label>
    <input type="text" name="description" id="description"       placeholder="description..." required>
   <p class="help-block">For Example: "Vacation Full Day" or "PTO 2 Hours."      </p>
    </div>
    </div>
   <div class="col col-lg-offset-0 col-lg-3">
    <label for="shift">Shift:</label><br>
    <input type="radio" name="shift" value="First Shift" id="shift" checked> First Shift |
    <input type="radio" name="shift" value="Second Shift" id="shift"> Second  Shift |
    <input type="radio" name="shift" value="Third Shift" id="shift"> Third Shift
    <p class="help-block">Select Correct Shift Worked.</p>
   </div>
   <div class="col col-lg-offset-0 col-lg-3">
   <div class="form-group col-lg-10">
   <label for="date2">Date/Dates:</label>
    <input type="text" id="datepicker1" name="daterange" placeholder="Select  Your Date"  />    
    </div>
    <div class="form-group col-lg-10">
     <label for="date2">Date/Dates:</label>
     <input type="text" id="datepicker2" name="daterange" placeholder="Select Your Date"  />    
      </div>
      <div class="form-group col-lg-10">
      <label for="date2">Date/Dates:</label>
       <input type="text" id="datepicker3" name="daterange" placeholder="Select Your Date"  />  
      </div>
      <div class="form-group col-lg-10">
       <label for="date2">Date/Dates:</label>
       <input type="text" id="datepicker4" name="daterange" placeholder="Select Your Date"  />  
        </div>
       <div class="form-group col-lg-10">
        <label for="date2">Date/Dates:</label>
         <input type="text" id="datepicker5" name="daterange" placeholder="Select Your Date"  />    
       </div>


     <div class="form-group col-lg-6">
      <input type="submit" name="submit" class= "btn btn-primary"> 
      </div>
      </div>

       </div>
        </form>

认为最好的方法是使用AJAX,

然后将响应作为字符串,将 table 或 php 中的 foreach 作为字符串,然后使用 .html 适配器输出新生成的数据。

function submitForm(form){
var url = form.attr("action");
var formData = {};
$(form).find("input[name]").each(function (index, node) {
    formData[node.name] = node.value;
});
$.post(url, formData).done(function (data) {
      $('#showresults').html(result);
});

}