#php #html #html-lists
#php #HTML #html-списки
Вопрос:
Это должно быть относительно просто, но ни одно из решений, которые я нашел здесь или где-либо еще, не работает вообще.
Я пытаюсь отобразить таблицу, содержащую все элементы списка брендов. Я добавил два вручную (Adidas и Nike) просто для проверки дисплея, и они отображаются правильно. Затем я попытался сгенерировать список, используя массив брендов (массив 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("$textn");
}
?>
</ul>
ожидаемый результат:
Adidas
Nike
Puma
Asics
фактический объем производства
Adidas
Nike
'.$item[1].''; echo("$textn"); } ?>
Я пробовал форматировать дюжину различных способов (с помощью одинарных и двойных кавычек, обратной косой черты и т.д.), Но он всегда отображает только половину строки кода вместо переменной. Я знаю, что это что-то простое, но я потратил слишком много времени на то, чтобы возиться с этим безрезультатно.
Комментарии:
1.
foreach $brandList as $item
недопустимо2. Вам нужно использовать правильный синтаксис для
foreach
— php.net/manual/en/control-structures.foreach.php3. Вы также можете где-нибудь запустить / открыть закрытие
</li>
4. Вы уверены, что ваша страница анализируется PHP ?! У вас есть веб-сервер, работающий с включенным PHP? Это ваше расширение файла
.php
?5.
.html
файлы обычно не анализируются PHP, переименуйте его в.php
и повторите попытку, код выглядит нормально
Ответ №1:
Один из способов сделать это — позволить 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>
Ответ №2:
В вашем фрагменте многое не так, и, честно говоря, я не удивлен, что он не работает.
- Вы используете неправильный синтаксис в своем
foreach
цикле. - В
<li></li>
создаваемом вами файле нет открывающего тега , только тег привязки<a></a>
и закрывающий тег элемента списка</li>
. $test
это переменная с кавычками в ней, использование кавычек вокруг нее воecho
время просто неправильно, так как"
in yourhref
закроет первую кавычку вокруг переменной, выводящей другие в виде строки, а не 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>
Комментарии:
1. Ваш 3. не проблема. Добавление / сохранение «n» также приведет к исправлению исходного кода, а не только к отображению HTML
Ответ №3:
Привет, я думаю, вы пропустили запуск тега 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);
?>