【发布时间】:2018-05-18 03:47:11
【问题描述】:
我的引导模式中有一个动态文本框,但它只保存第一项。但是,我尝试使用本机提交而不使用 Ajax,它会捕获所有输入的数据。我不知道我的 Ajax 代码哪里出错了。我只想插入从动态文本框输入的所有数据而不重新加载页面。这是我的示例代码:
<!-- start dynamic fields for parameter -->
<div class="row">
<div class="col-md-12">
<div class="input-group control-group after-add-more">
<?php require 'lab/pardrop.php'; ?> <!--dropdown list for parnam-->
</select>
<input type="text" name="parval[]" class="form-control" id="parval"
placeholder="Value" >
<button class="btn btn-success addmore" type="button" data-
toggle="tooltip" title="Add Parameter">
<i class="glyphicon glyphicon-plus"></i></button>
</div>
</div>
</div>
<!--start hidden fields-->
<div class="row">
<div class="col-md-12">
<div class="copy-fields hide">
<div class="control-group input-group">
<?php require 'lab/pardrop.php'; ?> <!--dropdown list for parnam-->
</select>
<input type="text" name="parval[]" id="parval" class="form-
control" placeholder="Value" >
<button class="btn btn-danger remove" type="button">
<i class="glyphicon glyphicon-remove"></i></button>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-info" type="button" name="btnsamp2"
id="btnsamp2">
</button>
</div>
<!--Ajax code-->
<script>
$(document).ready(function(){
$("#btnsamp2").click(function(){
var parnam=$("#parnam").val();
var parval=$("#parval").val();
$.ajax({
url:'insamp2.php',
method:'POST',
data:{
parnam:parnam,
parval:parval
},
success:function(data){
alert(data);
}
});
});
});
</script>
<!--PHP Code-->
<?php
//insamp2.php
require 'lab/db/dbcon.php';
$num = count($_POST["parnam"]) OR ($_POST["bacnam"]);
$parnam=mysqli_escape_string($con, $_POST['parnam']);
$parval=mysqli_escape_string($con, $_POST['parval']);
if($num > 0){
for($i=0; $i<$num; $i++)
{
if($_POST["parnam"][$i] != '' && $_POST["parval"][$i] )
{
$sql = "INSERT INTO pardtls(parnam,parval) VALUES ('".$parnam[$i]."','".$parval[$i]."')";
mysqli_query($con, $sql);
}
}
echo "Parameter inserted";
}
else
{
echo "Failed inserting data";
}
?>
【问题讨论】:
-
您应该向
input字段添加一些类,并使用类名获取值。目前我可以看到您正在使用id获取值。Id对于每个input应该是不同的,但似乎你给所有人都一样。 -
每个生成的文本框应该有不同的数据。所以你的意思是它应该通过调用类名而不是 ID 来捕获所有数据?
-
您正在像这样获取值
$("#parnam").val()。而不是这个使用$(".some_class").val()。所以它将捕获所有类为some_class的输入值 -
我将
$("#parnam").val()更改为$(".parnam").val(),但它仍然无法正常工作。它只保存第一项。 -
你在输入中添加了相同的类吗?尝试在 JS 中打印
parnamvar 以检查其值。