我想将输入字段中的数据发布到PHP。我有一个jQuery脚本,它添加了新的输入字段(通过用户单击按钮)。所有输入字段都具有相同的名称input[]
。当我提交表单时,我做var_dump($_POST)
,我得到的只是数组中只有一个项目(页面加载时的第一个输入)。有人知道从其他输入字段获取数据的方式,这是动态添加的吗?我需要使用JSON吗?
这是代码:
<body>
<div id="inp">
<form action="asd.php" method="POST">
<p><input type="text" name="input[]"></p>
</div>
<div id="adddiv">
<input id="add" type="submit" value="+">
<input id="ok" type="submit" value="ok">
</form>
</div>
</body>
<script>
$(document).ready(function(){
$('#add').click(function(e){ //adds input fields
e.preventDefault();
$('#inp').append('<p><input type="text" name="input[]"> <input id="del" type="submit" value="-"></p>');
});
$('#inp').on('click', '#del', function(e){ // removes input fields
e.preventDefault();
$(this).parent('p').remove();
});
});
</script>
现在是php文件:
<?php
var_dump($_POST); // shows only 1 item in the array
if(!empty($_POST)){
for($i=0;$i<sizeof($_POST);$i++){
$data = $_POST['input'][$i];
echo '<br>' . $data;
}
}
?>
我找到了解决方法:
<div>
<form action="process.php" method="POST">
<div id="inp">
<p><input type="text" name="input[]"></p>
</div>
<div id="adddiv">
<input id="add" type="submit" value="+">
<input id="ok" type="submit" value="ok">
</div>
</form>
</div>
答案 0 :(得分:0)
您的HTML已损坏,您正在关闭&#34; #inp&#34;中间形式的div因此有效地关闭了表单,这就是为什么它只发布第一个输入 试试这个
<div id="inp">
<form action="" method="POST">
<p><input type="text" name="input[]"></p>
<div id="adddiv">
<input id="add" type="submit" value="+">
<input id="ok" type="submit" value="ok">
</div>
</form>
</div>
</body>
<script>
$(document).ready(function(){
$('#add').click(function(e){ //adds input fields
e.preventDefault();
$('#adddiv').before('<p><input type="text" name="input[]"> <input id="del" type="submit" value="-"></p>');
});
$('#inp').on('click', '#del', function(e){ // removes input fields
e.preventDefault();
$(this).parent('p').remove();
});
});
</script>