[英]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> </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.