【问题标题】:creates variables in loop or fromArray在循环或 fromArray 中创建变量
【发布时间】:2025-12-10 15:50:01
【问题描述】:

所以我有一个小问题,我想不通,不知道该怎么做 所以我有一个创建表单框的循环,我会将它们全部发送到一个excel文件(但那是稍后) 现在我只想在循环中创建所有变量

这里是带有 1 个文本框的循环,只是为了显示

<?php

$i=1;
while ($i<=31){
?>

<input type = "text" name="day" />
<br />

<?php
$i=$i+1;
 }

?>

那么现在我如何为每个盒子创建一个唯一的名称?或者最好的方法是什么?

【问题讨论】:

  • name="day&lt;?php echo $i; ?&gt;"name="day[]"

标签: php arrays loops while-loop


【解决方案1】:

更改您的输入名称,例如day[]

<?php
$i=1;
while ($i<=31){
    ?>
    <input type = "text" value="day<?php echo $i; ?>" name="day[]" />
    <br />
    <?php
    $i++;
 }
?>

当您使用 GET/POST 处理表单值时(我的示例使用 POST):

<?php
$days = $_POST['day'];
foreach($days as $day) {
     echo $day;
}
?>

或者像这样:

<input list="day" name="day" class="listbox">
<datalist id="day">
    <?php
    $i=1;
    while ($i<=31){
        ?>
        <option value="day<?php echo $i; ?>">Day <?php echo $i; ?></option>
        <?php
        $i++;
     }
    ?>
</datalist>

【讨论】:

  • 好吧,我猜这就是数组吧?还是会像第 1 天、第 2 天、第 3 天等一样?
  • 是的,现在day 输入字段是数组。我已经更新了我的答案。跟着那个
  • 当我测试这个时,我在每个框中得到 value="day" 当我删除 value="day" 我不知道如何更改,所以我没有得到每个框的名称,我只想让它们像这样空白 []
  • 你能和我分享你的完整 html 表单吗?
  • 哦,该死的代码是错误的,但我得到了新链接jsfiddle.net/crz4d6yt php 没有工作,但你可以看到代码
【解决方案2】:

你可以这样做

<?php

    $i=1;
    while ($i<=31){

      echo  '<input type = "text" name="day' . $i .'" /><br />';
      $i=$i+1;
    }

?>

【讨论】:

  • 哦,这么简单,所以这会给我第 1 天、第 2 天、第 3 天等?
  • 是的......如果您需要其他东西..请说明您的需求
【解决方案3】:

这是使用 for 循环而不是 while 循环的好地方:

<?php
  for($i = 1; $i <= 31; $i++) {
?>
  <input type = "text" name="day-<?= $i ?>" />
  <br />
<?php
 }
?>

【讨论】:

  • 是的,这是输出:


  • .. .
【解决方案4】:

试试这个:)

$i=1;
while ($i<=31){
   echo '<input type = "text" name="Random' . $i . '" /><br />';
   $i++;
}
?>

顺便说一句。您可以像这样更轻松地对变量进行操作Operators

【讨论】: