使用php for循环将动态创建的输入字段中的数据插入数据库
我希望下面的代码能够从动态创建的表单输入字段中获取用户数据,并使用php for循环将其插入数据库。代码似乎可以工作,但是,只有来自第一个输入字段(1行)的数据被插入到db表中。 知道我错过了什么吗? 提前谢谢 form.php使用php for循环将动态创建的输入字段中的数据插入数据库,php,jquery,mysql,for-loop,Php,Jquery,Mysql,For Loop,我希望下面的代码能够从动态创建的表单输入字段中获取用户数据,并使用php for循环将其插入数据库。代码似乎可以工作,但是,只有来自第一个输入字段(1行)的数据被插入到db表中。 知道我错过了什么吗? 提前谢谢 form.php <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var addDiv = $('#addinput');
var i = $('#addinput p').size() + 1;
$('#addNew').live('click', function() {
$('<p><input type="text" size="20" name="name[]' + i +'" value="" /><a href="#" id="remNew">Remove</a> </p>').appendTo(addDiv);
i++;
return false;
});
$('#remNew').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
</script>
</head>
<body>
<div id="addinput">
<form method="post" action="test_process.php">
<input type="submit" value="Submit" /> <br /><br />
<input type="text" size="20" name="name[]" value="" /><a href="#" id="addNew">Add</a>
</form>
</div>
</body>
</html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var addDiv = $('#addinput form');
var i = $('#addinput p').size() + 1;
$('#addNew').live('click', function() {
$('<p><input type="text" size="20" name="name[]' + i +'" value="" /><a href="#" id="remNew">Remove</a> </p>').appendTo(addDiv);
i++;
return false;
});
$('#remNew').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
</script>
</head>
<body>
<div id="addinput">
<form method="post" action="test_process.php">
<input type="submit" value="Submit" /> <br /><br />
<input type="text" size="20" name="name[]" value="" /><a href="#" id="addNew">Add</a>
</form>
</div>
</body>
</html>
$(函数(){
var addDiv=$(“#addinput”);
变量i=$('#addinput p').size()+1;
$('#addNew').live('单击',函数()){
$('p>')。附录(addDiv);
i++;
返回false;
});
$('#remNew').live('单击',函数()){
如果(i>2){
$(this.parents('p').remove();
我--;
}
返回false;
});
});
test_process.php
<?php
for($i = 0; $i < count($_POST['name']); $i++)
{
$name = mysqli_real_escape_string($link, $_POST['name'][$i]);
if (empty(trim($name))) continue;
$dt = mysqli_query($link, "insert into wh_test (test_name)
values
('".$name."')
");
}
?>
<?php
for($i = 0; $i < count($_POST['name']); $i++)
{
$name = mysqli_real_escape_string($link, $_POST['name'][$i]);
if (empty(trim($name))) continue;
$dt = mysqli_query($link, "insert into wh_test (test_name)
values
('".$name."')
");
}
?>
在应用Swati提出的建议后发布正确的代码
form.php
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var addDiv = $('#addinput');
var i = $('#addinput p').size() + 1;
$('#addNew').live('click', function() {
$('<p><input type="text" size="20" name="name[]' + i +'" value="" /><a href="#" id="remNew">Remove</a> </p>').appendTo(addDiv);
i++;
return false;
});
$('#remNew').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
</script>
</head>
<body>
<div id="addinput">
<form method="post" action="test_process.php">
<input type="submit" value="Submit" /> <br /><br />
<input type="text" size="20" name="name[]" value="" /><a href="#" id="addNew">Add</a>
</form>
</div>
</body>
</html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var addDiv = $('#addinput form');
var i = $('#addinput p').size() + 1;
$('#addNew').live('click', function() {
$('<p><input type="text" size="20" name="name[]' + i +'" value="" /><a href="#" id="remNew">Remove</a> </p>').appendTo(addDiv);
i++;
return false;
});
$('#remNew').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
</script>
</head>
<body>
<div id="addinput">
<form method="post" action="test_process.php">
<input type="submit" value="Submit" /> <br /><br />
<input type="text" size="20" name="name[]" value="" /><a href="#" id="addNew">Add</a>
</form>
</div>
</body>
</html>
$(函数(){
var addDiv=$(“#addinput form”);
变量i=$('#addinput p').size()+1;
$('#addNew').live('单击',函数()){
$('p>')。附录(addDiv);
i++;
返回false;
});
$('#remNew').live('单击',函数()){
如果(i>2){
$(this.parents('p').remove();
我--;
}
返回false;
});
});
test_process.php
<?php
for($i = 0; $i < count($_POST['name']); $i++)
{
$name = mysqli_real_escape_string($link, $_POST['name'][$i]);
if (empty(trim($name))) continue;
$dt = mysqli_query($link, "insert into wh_test (test_name)
values
('".$name."')
");
}
?>
<?php
for($i = 0; $i < count($_POST['name']); $i++)
{
$name = mysqli_real_escape_string($link, $_POST['name'][$i]);
if (empty(trim($name))) continue;
$dt = mysqli_query($link, "insert into wh_test (test_name)
values
('".$name."')
");
}
?>
Hi输入不是附加在表单标记内部的,而是附加在表单标记外部的,这就是为什么您只提交第一个输入而不提交其他输入的原因。请将$('#addinput')
更改为$('#addinput form')
,以便它附加在表单标记内部。@Swati非常感谢。这很有帮助!!!!