【问题标题】:Using a function a dynamic amount of times [duplicate]使用函数的动态次数[重复]
【发布时间】:2012-01-28 21:23:49
【问题描述】:

可能重复:
How to loop through dynamic form inputs and insert into an array

我有一个 php 脚本和一个表单。 php 脚本创建了一个 xml 文件,但我需要的是有人输入一个数字,这将设置文本框的数量,以便有人为该 xml 文件写入数据。
所以我需要它写<input type="text" name="a #">,无论用户输入多少次。名称也需要是一个数字,但它是一个数字:<input type="text" name="1"> <input type="text" name="2">... 谢谢

【问题讨论】:

  • 这是for 循环的基本应用。你尝试过什么,你在挣扎什么?
  • 请注意,处理输入时不需要“a #”。

标签: php forms text dynamic input


【解决方案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

【讨论】:

  • 为什么要在@$s 上隐藏错误?
  • 非常感谢。抱歉,php 还不够好
  • 我正在这样做:
    "; } 回声 $s; ?> 即使我 givig $_GET['quantity'] 40
    什么也没有发生
【解决方案2】:

这个?

<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 好得多。更新了我的答案。

【讨论】:

  • 不,我不知道。 30秒编写的模板示例代码不一定代表正常的编码标准。如果你想知道我平时的写作方式,你可以查看 code.google.com/p/sleek-php/。
  • 我什么都不检查,除了我在我面前看到的。 “30秒”有多重要?你在 34 分钟前发布了这个(正如我评论的那样)。发布您“通常”如何这样做。如果您采取捷径使您的帖子看起来更及时和及时,至少要对其进行编辑以反映您的良好感觉;在“记录”之前,您有大约 5 分钟的时间关注帖子。
  • 绝对!在一个网站上,为了可读性而格式化非常重要,这个网站的重点是,嗯,人类的可读性。 ;)
【解决方案3】:

我想你想要的是一个表单域数组。

你想要这样的东西:

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

【讨论】:

  • 我想知道模板技术是否比在 PHP 中混合标记更有利?
  • 我讨厌模板。抱歉,还没习惯。
  • @evan.stoddard - 这是一个完美的“模板化”用例。它比内联代码注入更模块化。从长远来看,虽然习惯起来比较麻烦,但在实践中更实用,是你需要学习和习惯的东西。不要等到必须这样做。
  • 我知道,但现在我需要尽快解决这个问题
猜你喜欢
  • 2010-10-15
  • 2014-05-17
  • 2016-12-26
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-05
  • 2015-12-16
相关资源
最近更新 更多