繁体   English   中英

生成<li> php 中的元素</li>

[英]generating <li> elements in php

这应该相对简单,但我在这里或其他地方找到的解决方案都不起作用。

我正在尝试显示一个包含品牌列表所有元素的表格。 我手动添加了两个(阿迪达斯和耐克)只是为了测试显示,这些显示正确。 然后我尝试使用品牌数组生成一个列表(数组brandList 有两个项目,id 和name)。 output 是垃圾。

<ul class="brand-list">
    <li><a href="#">Adidas</a></li>
    <li><a href="#">Nike</a></li>
    <?php
        foreach ($brandList as $item) {
           $text = '<li><a href="#">'.$item[1].'</a></li>';
           echo("$text\n");
        }
    ?>
</ul>

预期 output:

 Adidas
 Nike
 Puma
 Asics

实际 output

Adidas
Nike
'.$item[1].''; echo("$text\n"); } ?>

我尝试了十几种不同的格式(使用单引号和双引号、反斜杠等),但它总是只显示代码行的一半而不是变量。 我知道这很简单,但是我花了太多时间弄乱它而没有结果。

一种方法是让 PHP 生成 HTML 而不是回显字符串。 我认为这比呼应更清楚。

<ul class="brand-list">
    <li><a href="#">Adidas</a></li>
    <li><a href="#">Nike</a></li>
    <?php
        foreach ($brandList as $item) {
    ?>
        <li><a href="#"><?=$item[1]?></a></li>
    <?php
        }
    ?>
</ul>

嗨,我认为您错过了循环中的起始 li 标签。 请检查此以获取您的解决方案。

<ul class="brand-list">
<li><a href="#">Adidas</a></li>
<li><a href="#">Nike</a></li>
<?php
   $text="";
   foreach ($brandList as $item){
       $text .= '<li><a href="#">'.$item[1].'</a></li>';
      
    }
    echo($text);
?>

您的代码段有很多问题,坦率地说,我并不奇怪它不起作用。

  1. 您在foreach循环中使用了错误的语法。
  2. 您正在创建的<li></li>没有开始标记,只有一个锚标记<a></a>和一个结束列表项标记</li>
  3. $test是一个带有引号的变量,在echo显期间在其周围使用引号是错误的,因为您的href中的"将关闭变量周围的第一个引号,将其他变量作为字符串而不是 HTML 标记输出。
  4. 虽然不是那么重要,但放弃\n字符。 您的浏览器将在有或没有它的情况下以块格式呈现列表。

将您的代码段更改为如下所示

<ul class="brand-list">
    <li><a href="#">Adidas</a></li>
    <li><a href="#">Nike</a></li>
    <?php
        foreach($brandList as $item) {
    ?>
           <li><a href="#"><?=$item[1]?></a></li>
    <?php
        }
    ?>
</ul>

如果您更喜欢当前的语法,请将其更改为此

<ul class="brand-list">
    <li><a href="#">Adidas</a></li>
    <li><a href="#">Nike</a></li>
    <?php
        foreach($brandList as $item) {
           $text = '<li><a href="#">'.$item[1].'</a></li>';
           echo($text);
        }
    ?>
</ul>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM