可能重复:
How to loop through dynamic form inputs and insert into an array
我有一个PHP脚本和一个表单。 php脚本生成一个xml文件,但我需要的是有人输入一个数字,这将设置那些用于为该xml文件写入数据的文本框数量。
因此,无论用户输入多少次,我都需要它来编写<input type="text" name="a #">
。此外,名称必须是一个数字,但它由一个ex计算:<input type="text" name="1"> <input type="text" name="2">...
谢谢
答案 0 :(得分:1)
此?
<form method="get" action="">
<div><input type="text" name="num_inputs" value="1" placeholder="Number of inputs"/></div>
</form>
<?php $num_inputs = isset($_GET['num_inputs']) ? $_GET['num_inputs'] : 1; ?>
<form method="post" action="">
<?php for ($i = 0; $i < $num_inputs; $i++) : ?>
<div><input type="text" name="inputs[]"/></div>
<?php endfor ?>
</form>
编辑:是的,数组比input_x好得多。更新了我的答案。
答案 1 :(得分:1)
<?php
session_start();
if(isset($_POST['quantity']){
// code here to check isnum and min/max
$count = $_POST['quantity'];
for ($i=1; $i<=$count; $i++){
@$s.= "<input type=text name=".$i."><br>";
}
?>
现在只需在你的html中回显$ s
答案 2 :(得分:0)
我认为你想要的是一系列表单字段。
你想要这样的东西:
<?php
$number_of_textboxes = 5; // you'd get this from a $_GET parameter
echo str_repeat('<input type="text" name="mybox[]" />', $number_of_textboxes);
?>
这将打印五个文本框:
<input type="text" name="mybox[]" />
然后,当您引用这些框的值时,您可以这样做:
<?php
foreach ($_POST['mybox'] as $i) {
echo $i;
}
?>
也就是说,通过使用“mybox []”作为每个输入字段的名称,您可以创建一个文本框数组,然后您可以迭代它们。