【问题标题】:Html within Php foreach loopPhp foreach循环中的HTML
【发布时间】:2018-03-19 10:41:05
【问题描述】:

我是 PHP 新手。我有一个函数将 HTML 代码返回给我的其他函数。该 HTML 代码中也有一些 PHP 代码。问题是我不知道如何在该 HTML 代码中添加一个 for 循环,然后返回整个 HTML。

例如,这是我的代码:

<?php
class Dummy
{
    public static function testing($data)
    {

        return '<div class = "dummy">name:' . $data['name'] . '</div>';


    }
}
?> 

例如,我想在其中插入 foreach 循环

<?php
    class Dummy
    {
        public static function testing($data)
        {

            return '<div class = "dummy">name:' . $data['name'] . '</div>
  <table>
      foreach($data as $d){
        <tr><td>hello</tr></td>
  }
            <table>

';


        }
    }
    ?> 

【问题讨论】:

  • 我的问题是如何在嵌入 PHP 代码且与类无关的 HTML 代码中添加 for 循环
  • 哎呀,我的错,我没有注意到第二节课有一个 foreach。格式使它看起来只是 HTML,我只是将其完全删除!
  • foreach() 不是客户端,也不能作为字符串传递。
  • @IsThisJavascript 不用担心。谢谢你的时间

标签: php html loops


【解决方案1】:

您需要首先构建具有所需输出的字符串。然后返回那个字符串

<?php
    class Dummy
    {
        public static function testing($data)
        {

          $str = '<div class = "dummy">name:' . $data['name'] . '</div>
  <table>';

            foreach($data as $d){
                 $str .= '<tr><td>hello</td></tr>';
            }
          $str .= '</table>';
          return $str;



        }
    }
    ?> 

【讨论】:

  • 请更新 tr 和表 @B 的结束标记。德赛
  • 我看不到foreach() 的意思。 $d 未使用
  • 我刚刚提供了要求的 OP 演示。可能他知道以后如何更新它以使用 foreach 变量。 @Akintunde007
  • 很高兴帮助@mynameisbutt
【解决方案2】:

你不能在这样的 return 语句中真正有一个 for 循环。您应该创建一个变量来保存字符串,并在循环中构建它,如下例所示:

public static function testing($data) {
    $html = '<div class = "dummy">name:' . $data['name'] . '</div>';
    $html .= '<table>';
    foreach($data as $d){
        $html .= '<tr><td>hello</td></tr>';
    }
    $html .= '<table>';
    return $html;
}

但是我想指出,像这样构建 HTML 通常是一个坏主意,您应该使用大多数框架提供的模板语言。

在 PHP 中,.= 语法是连接字符串的简写。你也可以使用$html = $html . '&lt;p&gt;some other content&lt;/p&gt;';。

【讨论】:

  • 非常感谢您的详细解答。
【解决方案3】:

返回前创建

        <?php
    class Dummy
    {
        public static function testing($data)
        {
            $return='<div class = "dummy">name:' . $data['name'] . '</div><table>';
            foreach($data as $d){
                $return+='<tr><td>hello</td></tr>';
            }
            $return+='<table>';

            return $return;


        }
    }
    ?> 

【讨论】:

    【解决方案4】:

    例如,您可以这样做。

    <?php
            class Dummy
            {
                public static function testing($data, $x)
                {
                          $firstLine = '<div class = "dummy">X Value:' . $x . '</div>';
                          $firstLine .= '<div>';
                          $innerHtml = '';
                          foreach($data as $d) {
                                $innerHtml  .=    '<tr><td>hello '.$d['name'].'</td></tr>';      
                          }
                          $innerHtml = '<table>'.$innerHtml.'</table>';
                          $lastLine = "</div>";   
                          return  $firstLine.$innerHtml.$lastLine;
    
                }
            }
    
        $data[0]['name'] = "Nishant";
        $data[1]['name'] = "Amit";
        $data[2]['name'] = "Rachit";
    
        echo Dummy::testing($data, "This is X Value");
         ?>
    

    【讨论】:

    • 我想,他想知道如何在 foreach 循环中创建动态 HTML 内容并将其返回。我也是这样。我把不同的变量串联起来只是为了让他理解的更清楚。
    • 你认为你对你的代码给出了更清晰的解释吗?
    • 是的,你可以这样说,我没有提供解释 :) 但是,提问者问了同样的事情。
    • 没有关于代码如何工作的任何解释。与提问者的提问相比,当您添加额外的行时,值得添加解释!
    猜你喜欢
    • 2019-11-17
    • 2016-09-26
    • 2012-07-19
    • 2012-09-17
    • 1970-01-01
    • 2014-09-12
    • 2017-05-28
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多