Я хотел бы получить некоторую помощь в том, что происходит в моем коде. Я перепробовал много вариантов, но не могу заставить его работать.
Это ul-list в PHP-коде. Он встроен в CSS и все остальное в порядке, но каким-то образом ul-list совпадает с одним из операторов if-elseif-else-url (url, slug или id), и я не могу понять, почему.
Я пробовал много вариантов с положением </li>
а также </li></ul>
в конце операторов if-else, но ни одна из них не работает.
$parts = array();
foreach ($content AS $id => $val){
$position = "<li>";
$position.="<h2><a href='post.php?id='" . $val->id . "'>" . $val->title . "</a></h2>";
$position.="<h6>" . $val->published . "</h6>";
$position.="<p>" . substr($val->data, 0, 100) . "...";
if ($val->url){
$position .= "<a href='post.php?url={$val->url}'><span class='small red'>Läs mer</span></a>";
}
elseif ($val->slug){
$position .= "<a href='post.php?slug={$val->slug}'><span class='small red'>Läs mer</span></a>";
}
else {
$position .= "<a href='post.php?id={$val->id}'><span class='small red'>Läs mer</span></a>";
}
$position .= "</p></li>";
$parts[] = $position;
}
$htmltext = "<ul class='latest-news'>" . implode('', $parts) . "</ul>";
Может ли это быть что-то с CSS?
ul.latest-news {
padding: 0;
width: 100%;
list-style: none;
text-align: center;
float: none;
margin-top: 0px;
position: relative;
display: inline;
}
ul.latest-news li {
display: inline-block;
padding: 0 1em;
margin: 1.5em 0.6em;
max-width: 28%;
min-width: 250px;
height: 185px;
border: thin solid #C8C3C3;
border-radius: 21px;
}
![введите описание изображения здесь] [2]
Вы забыли закрыть свой <p>
тег, а также открыть одинарную цитату в id=
пары. Ну вот:
$parts = array();
foreach ($content AS $id => $val) {
$position = "<li>";
//don't mix string concatenation methods, it makes things harder to read
$position.="<h2><a href='post.php?id='" . $val->id . "'>" . $val->title . "</a></h2>";
$position.="<h6>" . $val->published . "</h6>";
$position.="<p>" . substr($val->data, 0, 70) . "...";
if ($val->url) {
$position.="<a href='post.php?url={$val->url}'><span class='small red'>Läs mer</span></a>";
} elseif ($val->slug) {
$position.="<a href='post.php?slug={$val->slug}'><span class='small red'>Läs mer</span></a>";
} else {
$position.="<a href='post.php?id={$val->id}'><span class='small red'>Läs mer</span></a>";
}
$position .= "</p></li>"; //<p> closed
$parts[] = $position;
}
$htmltext = "<ul class='latest-news'>" . implode('', $parts) . "</ul>";
Чтобы проверить, правильно ли генерируется html:
echo "<pre>";
var_dump($htmltext);
echo "</pre>";
die();
$htmltext .= "</li>";
изменить на:
$htmltext .= "</p></li>";