我是php的新手。我有一个jQuery脚本,将生成新元素。用户单击“提交”并转到page2.php。这就是我需要一个php循环来确定用户创建了多少文本输入的地方。
page1.php中
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.min.js'> </script>
<script type='text/javascript'>
$(document).ready(function() {
$('#btn').click(function() {
var x = parseInt($('#hidtxt').val()) + (1*1);
var z = "<input type='text' id='txt" + x + "' name='txt" + x + "' size='10'/>";
$('#main').append(z);
$('#hidtxt').val(x);
});
});
</script>
</head>
<body>
<form name='myform' action='page2.php' method='post'/>
<input type='hidden' value='1' name='hidtxt' id='hidtxt'/>
<div id='main'>
<input type='text' id='txt1' name='txt1' size='10'/>
</div>
<input type='button' id='btn' name='btn' value='Add Text Box'/>
<input type='submit' value='Submit' id='subBtn' name='subBtn'/>
</form>
</body>
</html>
然后是page2.php
<?php
//CREATE LOOP TO POST ALL TEXT INPUTS
$val1 = $_POST['txt1'];
$val2 = $_POST['txt2'];
....
....
$valx = $_POST['txtx'];
?>
答案 0 :(得分:5)
将文本框名称指定为类似
的数组<input type='text' id='txt1' name='txt[]' size='10'/>
然后就像
一样print_r($_POST['txt']);
然后你将获得文本框值的数组。可以使用循环
for($i=0;$i<$cnt;$i++) {
$val[$i] = $_POST['txt'][$i];
}
在这里,您需要将为循环指定的总输入字段数量计为$cnt
。维护一个隐藏字段,初始值为1
,并且每当您点击Add text box
时按钮需要递增,在提交表单后,您可以获得$cnt
值作为隐藏字段中的输入字段数。
答案 1 :(得分:2)
在第一页中使用Jquery计算输入数量创建隐藏输入字段,然后将该值放入隐藏字段中。在下一页中,使用PHP阅读。
答案 2 :(得分:1)
一种方法是在同一表单中包含隐藏文本字段。这将包含已生成的输入元素的数量(可以使用简单的纯JavaScript)。所以在第二个php页面上,首先要找出生成了多少元素,然后使用for循环将它们的值放入一个可以根据需要解析的数组中。 (从我的手机输入,所以无法发布代码示例。但应该很容易。)