簡體   English   中英

從動態表單向數據庫插入數據數組

[英]insert data array from dynamic form to database

我有一個動態的形式。 在表格中,我可以根據需要添加多個字段。 但是我很困惑如何將其保存到數據庫中。

這是我的表單代碼,就像這樣,但有點不同https://jsfiddle.net/Twisty/q8zj00s0/1/

   <form id="tambahepisode" method="post" style="margin-bottom: 20px;"></form>
<form>
  <ul id="fieldList">
    <li>
      <input name="name[]" type="text" placeholder="Name" form="tambahepisode"/>
    </li>
    <li>
      <input name="phone[]" type="text" placeholder="Phone" form="tambahepisode"/>
    </li>
    <li>
      <input name="email[]" type="text" placeholder="E-Mail" form="tambahepisode"/>
    </li>
  </ul>
  <button id="addMore">Add more fields</button>
  <br>
  <br>
  <input type="submit" name="submit" class="btn btn-default" value="Publikasi" form="tambahepisode" style="width: 100%;" />
</form>

這是我的jQuery創建動態表格

<script type="text/javascript">
    $(function() {
  $("#addMore").click(function(e) {
    e.preventDefault();
    $("#fieldList").append("<li>&nbsp;</li>");
    $("#fieldList").append("<li><input type='text' name='name[]' placeholder='Name' /></li>");
    $("#fieldList").append("<li><input type='text' name='phone[]' placeholder='Phone' /></li>");
    $("#fieldList").append("<li><input type='text' name='email[]' placeholder='E-Mail' /></li>");
  });
});

</script>

我基本插入數據庫

if(isset($_POST['submit'])){
        $name= htmlentities($_POST['name']);
        $phone= htmlentities($_POST['phone']);
        $email= htmlentities($_POST['email']);
        $query = $db->prepare("INSERT INTO `data`(`name`,`phone`,`email`)
        VALUES (:name,:phone,:email)");
        $query->bindParam(":name", $name);
        $query->bindParam(":phone", $phone);
        $query->bindParam(":email", $email);
        $query->execute();
        header("location: index.php");
    }

首先,您必須計算要保存的記錄數,因為要通過添加更多按鈕保存數組。

例如,計數名稱或任何其他字段。

$count = count($_POST['name']);

然后使用foreach或for循環。

for($i=0;$i<$count;$i++){
    $name= htmlentities($_POST['name'][$i]);
    $phone= htmlentities($_POST['phone'][$i]);
    $email= htmlentities($_POST['email'][$i]);
    $query = $db->prepare("INSERT INTO `data`(`name`,`phone`,`email`)
        VALUES (:name,:phone,:email)");
    $query->execute();        
}
header("location: index.php");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM