使用函数动态的次数

时间:2011-12-28 02:29:51

标签: php forms text dynamic input

  

可能重复:
  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">...谢谢

3 个答案:

答案 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 []”作为每个输入字段的名称,您可以创建一个文本框数组,然后您可以迭代它们。