在 php 中生成 <li> 个元素
generating <li> elements in php
这应该相对简单,但我在这里或其他地方找到的 none 解决方案完全有效。
我正在尝试显示包含品牌列表所有元素的 table。我手动添加了两个(阿迪达斯和耐克)只是为了测试显示,这些显示正确。然后我尝试使用品牌数组生成一个列表(数组 brandList 有两个项目,id 和 name)。输出是垃圾。
<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>
预期输出:
Adidas
Nike
Puma
Asics
实际产量
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);
?>
您的代码段有很多错误,坦率地说,我对它不起作用并不感到惊讶。
- 您在
foreach
循环中使用了错误的语法。
- 您正在创建的
<li></li>
没有开始标签,只有一个锚标签 <a></a>
和一个结束列表项标签 </li>
。
$test
是一个带引号的变量,在 echo
期间使用引号是错误的,因为 href
中的 "
将关闭第一个引用变量输出其他作为字符串而不是 HTML 标签。
- 虽然不是很重要,但是放弃
\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>
这应该相对简单,但我在这里或其他地方找到的 none 解决方案完全有效。
我正在尝试显示包含品牌列表所有元素的 table。我手动添加了两个(阿迪达斯和耐克)只是为了测试显示,这些显示正确。然后我尝试使用品牌数组生成一个列表(数组 brandList 有两个项目,id 和 name)。输出是垃圾。
<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>
预期输出:
Adidas
Nike
Puma
Asics
实际产量
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);
?>
您的代码段有很多错误,坦率地说,我对它不起作用并不感到惊讶。
- 您在
foreach
循环中使用了错误的语法。 - 您正在创建的
<li></li>
没有开始标签,只有一个锚标签<a></a>
和一个结束列表项标签</li>
。 $test
是一个带引号的变量,在echo
期间使用引号是错误的,因为href
中的"
将关闭第一个引用变量输出其他作为字符串而不是 HTML 标签。- 虽然不是很重要,但是放弃
\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>