【问题标题】:How to insert foreach loop in a string PHP element?如何在字符串 PHP 元素中插入 foreach 循环?
【发布时间】:2021-04-09 23:07:49
【问题描述】:

我有一个 PHP 字符串元素

$element = "
    <div class='elements'>
        <div class='elementName'>El Name</div>
        <div class='elementImage'><img src='image1.png'></div>
        <div class='elementOptions'>
            <select>
                <option value='null' selected>Select an option</option>
                
            </select>
        </div>
    </div>
";

我要做的是在选择选项下的空间中插入这个foreach循环

$sql =  $conn -> prepare("SELECT elementOptions FROM elements");
$sql -> execute();
$result = $sql -> get_result();
while ($row = mysqli_fetch_assoc($result)) {
    $options = explode(",", $row['elementOptions']);
    foreach ($options as $option) {
        echo "<option value='$option'>$option</option>";
    }
}

*注意 elementOptions 等于这个字符串 (option1,option2,option3,option4)

我试图通过添加 this--> "; 在具有 null 值的选项之后停止该元素,然后使用其余代码启动一个新元素,并将它们组合在一个单独的元素中,例如

$element = $element1 . $element2

但这不起作用,所以我的问题是如何创建一个动态 PHP 元素,其中包含一个 foreach 循环。

【问题讨论】:

    标签: php


    【解决方案1】:

    你可以这样

    <?php
    
    $element = "
        <div class='elements'>
            <div class='elementName'>El Name</div>
            <div class='elementImage'><img src='image1.png'></div>
            <div class='elementOptions'>
                <select>
                    <option value='null' selected>Select an option</option>\n";
    
                    // I use just $row for simplify in this example 
        
                    $row = ["elementOptions" => "option1,option2,option3,option4"];
                    $options = explode( "," , $row["elementOptions"] );
                    foreach ($options as $option) {
                        $element.="\t\t\t<option value='$option'>$option</option>\n";
                    }
          
    $element.="\t\t</select>
            </div>
        </div>";
    
    echo $element;
    echo "\n\n";
    ?>
    

    输出:

     <div class='elements'>
            <div class='elementName'>El Name</div>
            <div class='elementImage'><img src='image1.png'></div>
            <div class='elementOptions'>
                <select>
                    <option value='null' selected>Select an option</option>
                            <option value='option1'>option1</option>
                            <option value='option2'>option2</option>
                            <option value='option3'>option3</option>
                            <option value='option4'>option4</option>
                    </select>
            </div>
        </div>
    

    注意:\t 正确缩进输出代码

    【讨论】:

      【解决方案2】:

      在 php 文件中,您可以有普通的 元素和 php 逻辑,它们将在服务器端被解释和执行。

      你需要使用 php 标签在你的 html 元素之间包含 php 代码,像这样

      <html>
        <head></head>
        <body>
          <div class="elements">
              <div class="elementName">El Name</div>
              <div class="elementImage"><img src="image1.png"></div>
              <div class="elementOptions">
                  <select>
                      <option value="null" selected>Select an option</option>
      
                      <php
                        $sql =  $conn -> prepare("SELECT elementOptions FROM elements");
                        $sql -> execute();
                        $result = $sql -> get_result();
                        while ($row = mysqli_fetch_assoc($result)) {
                          $options = explode(",", $row['elementOptions']);
                          foreach ($options as $option) {
                            echo "<option value='$option'>$option</option>";
                          }
                        }
                      ?>
      
                  </select>
              </div>
          </div>
        </body>
      </html>
      

      【讨论】:

        猜你喜欢
        • 2013-10-06
        • 2020-04-04
        • 1970-01-01
        • 1970-01-01
        • 2015-08-29
        • 1970-01-01
        • 2012-12-20
        • 2019-07-25
        • 1970-01-01
        相关资源
        最近更新 更多