Javascript 使用for循环将多条记录插入数据库
我有一个表格可以插入多条记录 表格有:字段用户名(a)、BTR(B)、使用的设施(C)、样本数量(D)和与不同样本相关的记录(1,2,3…) 使用此表单,我将多个记录(ABCD1、ABCD2、ABCD3、ABCD4…插入数据库 我尝试使用for循环,但它正在保存最后一个记录值。我无法执行此操作。请帮助我Javascript 使用for循环将多条记录插入数据库,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我有一个表格可以插入多条记录 表格有:字段用户名(a)、BTR(B)、使用的设施(C)、样本数量(D)和与不同样本相关的记录(1,2,3…) 使用此表单,我将多个记录(ABCD1、ABCD2、ABCD3、ABCD4…插入数据库 我尝试使用for循环,但它正在保存最后一个记录值。我无法执行此操作。请帮助我 if(isset($_POST['add'])) { $user=$_POST['user']; $btr=$_POST['btr']; $facility=$
if(isset($_POST['add']))
{
$user=$_POST['user'];
$btr=$_POST['btr'];
$facility=$_POST['facility'];
$type=$_POST['type'];
$samplelocation=$_POST['samplelocation'];
$remarks=$_POST['remarks'];
$samplecount=$_POST['samplecount'];
$sql="INSERT INTO tblfacility(user,btr,facility,type,samplelocation,remarks) VALUES(:user,:btr,:facility,:type,:samplelocation,:remarks)";
$query = $dbh->prepare($sql);
$query->bindParam(':user',$user,PDO::PARAM_STR);
$query->bindParam(':btr',$btr,PDO::PARAM_STR);
$query->bindParam(':facility',$facility,PDO::PARAM_STR);
$query->bindParam(':type',$type,PDO::PARAM_STR);
$query->bindParam(':samplelocation',$samplelocation,PDO::PARAM_STR);
$query->bindParam(':remarks',$remarks,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
{
$_SESSION['msg']="Sample Listed successfully";
header('location:manage-books.php');
}
else
{
$_SESSION['error']="Something went wrong. Please try again";
header('location:manage-books.php');
<label>BTR No.<span style="color:red;">*</span></label>
<input class="form-control" type="text" name="btr" required="required" autocomplete="off" />
</div>
<label>BTR No.<span style="color:red;">*</span></label>
<input class="form-control" type="text" name="btr" required="required" autocomplete="off" />
</div>
<div class="form-group">
<label>Facility Used<span style="color:red;">*</span></label>
<select class="form-control" type="text" name="facility" required="required" autocomplete="off" />
<option value="AMS">AMS 14C</option>
<option value="AMS">AMS 10Be</option>
</select>
<p class="help-block"></p>
</div>
<div class="form-group">
<label>Number Of Sample<span style="color:red;">*</span></label>
<input class="form-control" type="text" name="samplecount" onchange="samplecount()" required="required" autocomplete="off" />
</div>
<td>
<table class="table table-striped small-text" id="tb" >
<tr class="tr-header">
<h4 style="color:darkGreen;" ><b><u>SAMPLE INFORMATION</u></b></h4>
<th class= "col-md-1" align="centre">Sl.No.</th>
<th class= "col-md-2" align="centre">TYPE OF SAMPLE</th>
<th class= "col-md-2" align="centre">Sample Location</th>
<th class= "col-md-6" align="centre"> Remarks</th>
<th><a href="javascript:void(0);" style="font-size:18px;" id="addMore" title="Add More Sample"><span class="glyphicon glyphicon-plus"></span></a></th>
<tr>
<td><input type="text" name="slno" value= "<?php echo $i; ?>" class="form-control" ></td>
<td><select type="text" name="type" class="form-control">
<option value="SELECT TYPE">SELECT TYPE</option>
<option value="BONE">BONE</option>
<option value="CARBONATE">CARBONATE</option>
</select></td>
<td><input type="text" name="samplelocation" class="form-control" ></td>
<td><input type="text" name="remarks" class="form-control"></td>
<td><a href='javascript:void(0);' class='remove'><span class='glyphicon glyphicon-remove'></span></a></td>
<?php }?>
</tr>
</table>
<button type="submit" name="add" class="btn btn-info" align="middle" >ADD </button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script>
$(function(){
$('#addMore').on('click', function() {
var data = $("#tb tr:eq(1)").clone(true).appendTo("#tb");
data.find("input").val('');
});
$(document).on('click', '.remove', function() {
var trIndex = $(this).closest("tr").index();
if(trIndex>1) {
$(this).closest("tr").remove();
} else {
alert("Sorry!! Can't remove first row!");
}
});
});
</script>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
if(isset($\u POST['add']))
{
$user=$_POST['user'];
$btr=$_POST['btr'];
$facility=$_POST['facility'];
$type=$_POST['type'];
$samplelocation=$\u POST['samplelocation'];
$comments=$_POST['comments'];
$samplecount=$\u POST['samplecount'];
$sql=“插入TBLFacity(用户、btr、设施、类型、采样位置、备注)值(:用户、:btr、:设施、:类型、:采样位置、:备注)”;
$query=$dbh->prepare($sql);
$query->bindParam(':user',$user,PDO::PARAM_STR);
$query->bindParam(':btr',$btr,PDO::PARAM_STR);
$query->bindParam(':facility',$facility,PDO::PARAM_STR);
$query->bindParam(':type',$type,PDO::PARAM_STR);
$query->bindParam(':samplelocation',$samplelocation,PDO::PARAM_STR);
$query->bindParam(':rements',$rements,PDO::PARAM_STR);
$query->execute();
$lastInsertId=$dbh->lastInsertId();
如果($lastInsertId)
{
$\u会话['msg']=“成功列出样本”;
标题('location:managebooks.php');
}
其他的
{
$\u会话['error']=“出现问题,请重试”;
标题('location:managebooks.php');
BTR号*
BTR号*
使用的设施*
AMS14C
AMS 10Be
样本数*
样本信息
没有。
样本类型
样本位置
评论
在所有输入名称中添加[]
,例如:name=“user[]”
。提交后,这将为您提供一个输入元素数组
因此,在您的if(isset($\u POST['add'])
中,您可以像$arr\u user=$\u POST['user'];
那样获得这个数组,然后使用for循环来循环这些数据。
你的tr标签可能是
<tr class="tr-header">
<h4 style="color:darkGreen;" ><b><u>SAMPLE INFORMATION</u></b></h4>
<th class= "col-md-1" align="centre">Sl.No.</th>
<th class= "col-md-2" align="centre">TYPE OF SAMPLE</th>
<th class= "col-md-2" align="centre">Sample Location</th>
<th class= "col-md-6" align="centre"> Remarks</th>
<th><a href="javascript:void(0);" style="font-size:18px;" id="addMore" title="Add More Sample"><span class="glyphicon glyphicon-plus"></span></a></th>
<tr>
<td><input type="text" name="slno[]" value= "<?php echo $i; ?>" class="form-control" ></td>
<td><select type="text" name="type[]" class="form-control">
<option value="SELECT TYPE">SELECT TYPE</option>
<option value="BONE">BONE</option>
<option value="CARBONATE">CARBONATE</option>
</select></td>
<td><input type="text" name="samplelocation[]" class="form-control" ></td>
<td><input type="text" name="remarks[]" class="form-control"></td>
<td><a href='javascript:void(0);' class='remove'><span class='glyphicon glyphicon-remove'></span></a></td>
<?php }?>
</tr>
样本信息
没有。
样本类型
样本位置
评论
在所有输入名称中添加[]
,例如:name=“user[]”
。提交后,这将为您提供一个输入元素数组
因此,在您的if(isset($\u POST['add'])
中,您可以像$arr\u user=$\u POST['user'];
那样获得这个数组,然后使用for循环来循环这些数据。
你的tr标签可能是
<tr class="tr-header">
<h4 style="color:darkGreen;" ><b><u>SAMPLE INFORMATION</u></b></h4>
<th class= "col-md-1" align="centre">Sl.No.</th>
<th class= "col-md-2" align="centre">TYPE OF SAMPLE</th>
<th class= "col-md-2" align="centre">Sample Location</th>
<th class= "col-md-6" align="centre"> Remarks</th>
<th><a href="javascript:void(0);" style="font-size:18px;" id="addMore" title="Add More Sample"><span class="glyphicon glyphicon-plus"></span></a></th>
<tr>
<td><input type="text" name="slno[]" value= "<?php echo $i; ?>" class="form-control" ></td>
<td><select type="text" name="type[]" class="form-control">
<option value="SELECT TYPE">SELECT TYPE</option>
<option value="BONE">BONE</option>
<option value="CARBONATE">CARBONATE</option>
</select></td>
<td><input type="text" name="samplelocation[]" class="form-control" ></td>
<td><input type="text" name="remarks[]" class="form-control"></td>
<td><a href='javascript:void(0);' class='remove'><span class='glyphicon glyphicon-remove'></span></a></td>
<?php }?>
</tr>
样本信息
没有。
样本类型
样本位置
评论
我没有在您的输入周围看到任何
标记,您是否用JS代码绕过了这些标记?您的samplelocation
和备注
输入似乎也是数组,但在提交时您不会拆分它们。如果一次只提交一个,我不确定是否有必要这样做。@droopsnoot这可能是语法错误错误,就表单而言,问题只在于保存多行。您还有两次btr
字段。帖子中有什么混淆吗?是的,关于btr的问题是错误的,您可以发布更正后的代码。我在您的输入周围没有看到任何
标记,您是否以某种方式绕过了这些标记使用JS代码?您的samplelocation
和备注
输入似乎也是数组,但在提交时您不会拆分它们。如果一次只提交一个,我不确定是否有必要这样做。@droopsnoot这可能是语法错误,就表单而言,问题只是保存mulyip勒罗。你也有两次的btr
字段。帖子中有什么混淆吗?是的,关于btr的错误,你可以发布正确的代码。