[英]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);
?>
您的代碼段有很多問題,坦率地說,我並不奇怪它不起作用。
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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.