【问题标题】:HTML form in PHP while loop [closed]PHP while循环中的HTML表单[关闭]
【发布时间】:2012-12-02 16:32:33
【问题描述】:

如何将 html 表单放入 PHP while 循环中?

它是这样想的,但它不起作用:

<?php

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

<form name="X" action="thispage.php" method="POST">
     <input type="text">
     <input type="submit">
</form>;

$i=$i+1;

              }

?>

【问题讨论】:

  • 什么“不起作用”?结果是什么,你有什么期望?

标签: php html forms loops while-loop


【解决方案1】:

你可以,只是不能在 PHP 的中间有这样的原始 HTML。在 HTML 之前结束 PHP 语句,然后像这样重新打开它:

 <?php

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

<form name="X" action="thispage.php" method="POST">
     <input type="text" name="trekking">
 <input type="submit">
</form>

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

?>

【讨论】:

  • 小错字问题。 $i 增量在 php 标签之外。 :)
  • 谢谢大家。 Rick Calder 的代码效果最好。没想到php可以被html打断,然后就当什么都没发生过。
  • 但是,这段代码会立即打印 5 次表单,而实际上它应该等待按下提交按钮才能打印下一个表单。怎么解决?
  • 你没这么说...这是jQuery复制表单的一个案例。
【解决方案2】:
<?php

$i=1;
while ($i<=5):?>

<form name="X" action="thispage.php" method="POST">
         <input type="text" name="trekking">
     <input type="submit">
</form>

<?php $i=$i+1;

   endwhile;

?>

使用endwhile 对php 和html 进行很好的可读分离。 如果没有必要,不要回显代码块。

【讨论】:

    【解决方案3】:

    你可以使用echo:

    <?php
    
    $i=1;
    while ($i<=5){
    
        echo '
            <form name="X" action="thispage.php" method="POST">
                 <input type="text" name="trekking">
                 <input type="submit">
            </form>;
        ';
    
        $i=$i+1;
    }
    ?>
    

    否则,打开和关闭 PHP 标签:

    <?php
    
    $i=1;
    while ($i<=5){
    
    //closing PHP
    ?>
    
            <form name="X" action="thispage.php" method="POST">
                 <input type="text" name="trekking">
                 <input type="submit">
            </form>;
    
    <?php 
    //opening PHP 
    
        $i=$i+1;
    }
    ?>
    

    【讨论】:

      【解决方案4】:

      您可以通过在 HTML 之前使用 ?&gt; 关闭 PHP 块,然后在其余代码之前使用 &lt;?php 重新打开来做到这一点。

      不过,我个人更喜欢在 PHP 中使用echo HTML。它使您的代码更具可读性。另外,我建议使用for 循环而不是你那里的循环。

      <?php
      for ($i=1; $i<=5; $i++) {
          echo '<form name="x" action="thispage.php" method="POST">',
               '<input type="text" name="trekking">',
               '<input type="submit"',
               '</form>';
      }
      ?>
      

      【讨论】:

      • 我倾向于在打开和关闭和回显之间来回切换,我遇到的问题是无法使用 Notepad++ 的打开/关闭标签查找功能。
      • @RickCalder,这是一个偏好问题。对我来说,以编程方式使用的 HTML 是微不足道的,所以我对此没有任何问题。我也倾向于先做 HTML,然后再做动态部分的 PHP。我也经常使用模板引擎。
      • @Brad 对模板引擎有什么建议吗?
      • @Bizarre 几年没用过PHP了,不过以前用过Smarty。 smarty.net 支持模板继承,非常方便。您可以有页面类,比如主页、内页等。然后对它们进行子类化,因此文章可能是内页的子类,而照片库可能是内页的子类。这是我见过的最好的模板引擎概念之一。与其简单地连接一个页眉、一个页脚,并且将开/关标签分散在各处,您最终会得到更像 HTML 和 OOP 的东西!
      • @Brad,好的,谢谢!我会检查一下,似乎它真的可以加快新网站设计的工作流程!你切换到nodejs堆栈了吗?红宝石?还是停止做 Web 应用程序?值得转换吗?
      【解决方案5】:

      你应该先学习 PHP。你想要实现的是非常简单的基本 PHP。

      但要回答您的问题,请在 while 循环内回显 "[form-html goes here]";。确保转义所有其他"

      【讨论】:

      • 不不不不不。您不应该回显该 HTML。
      【解决方案6】:

      如果您的目标是尝试输出 5 个具有相同名称的表单(我一开始不建议这样做),您可以试试这个:

      $i=1;
      $strOutput = "";
      while ($i<=5){
      
       $strOutput .= '<form name="X" action="thispage.php" method="POST">';
           $strOutput .= '<input type="text" name="trekking">';
           $strOutput .= '<input type="submit">';
       $strOutput .= '</form>';
      
         $i=$i+
      }
      
      echo $strOutput;
      

      永远不要像您在问题中所做的那样在 PHP 代码中使用 HTML。

      【讨论】:

        【解决方案7】:
        <?php
        
        $i=1;
        echo"<form name="X" action="thispage.php" method="POST">";
        while ($i<=5)
        {
            echo"<input type="text">";
            echo"<input type="submit">";
            $i++;
        }
        echo"</form>";
        
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-14
          • 2014-11-24
          相关资源
          最近更新 更多