#php #html #css #mysql
#php #HTML #css #mysql
Вопрос:
Просто краткое замечание, я понимаю, что мой PHP-код неаккуратен, и я знаю, что мог бы многое исправить с помощью массива.
Итак, эта страница используется для отображения сведений об автомобиле, которые хранятся в нескольких таблицах, запись будет либо равна 1, либо 2. 1 означает «Да», у нее есть эта функция, а 2 означает «нет», у нее ее нет. Затем в моем последующем оформлении я проверяю, равно ли оно 1, и если да, то отображаю некоторый текст, чтобы пользователь мог видеть, какими функциями обладает транспортное средство. Мой стиль печатает маленькую синюю галочку рядом с текстом, просто чтобы красиво выглядеть. Эта галочка выводится только в том случае, если у транспортного средства есть функция, но по какой-то причине галочка выводится случайным образом. Это тоже не соответствует, поэтому в моем коде, если в транспортном средстве нет 5 элементов, тогда он может напечатать только 1 пустую галочку или 2, это не согласовано, и я не могу понять почему!
Изображение затронутой области
Исходный PHP-код
//Fetch Category - Most Popular
$queryThree = "SELECT * FROM categoryMostPopular WHERE vehicleReg = :reg";
$stmt = $conn->prepare($queryThree);
$stmt->bindValue(':reg', $vehicleReg);
$stmt->execute();
$category1 = $stmt->fetch(PDO::FETCH_ASSOC);
//Put Results Into Variables
$mostPopularReg = $category1['vehicleReg'];
$airCon = $category1['airCon'];
$bluetooth = $category1['bluetooth'];
$climateControl = $category1['climateControl'];
$satNav = $category1['satNav'];
$commsPack = $category1['commsPack'];
$climateZonex2 = $category1['climateZonex2'];
$dvdPlayer = $category1['dvdPlayer'];
$fullLeather = $category1['fullleather'];
$halfLeather = $category1['halfLeather'];
$ipodConnectivity = $category1['ipodConnectivity'];
$manufacturersDirect = $category1['manufacturersDirect'];
$memorySeats = $category1['memorySeats'];
$panarRoof = $category1['panarRoof'];
$elecFoldingMirrors = $category1['elecFoldingMirrors'];
$rainSenseWipers = $category1['rainSenseWipers'];
$xenonHeadlights = $category1['xenonHeadlights'];
Я не опубликовал весь исходный PHP-код в основном потому, что у меня есть 12 категорий, таких же, как приведенные выше, так что кода было бы много.
Проверьте, установлена ли переменная в 1 или 2, затем отобразите галочку и текст
<div class="col-sm-6">
<ul class="fa-ul list-unstyled">
<?php
if ($alcantaraLeather == 1) { echo "<li><i class='fa-li fa fa-check'></i>Alcantara Leather</li>"; }
if ($clothUpholstery == 1) { echo "<li><i class='fa-li fa fa-check'></i>Cloth Upholstery</li>"; }
if ($velourTrim == 1) { echo "<li><i class='fa-li fa fa-check'></i>Velour Trim</li>"; }
if ($fullLeather == 1) { echo "<li><i class='fa-li fa fa-check'></i>Full Leather</li>"; }
if ($halfLeather == 1) { echo "<li><i class='fa-li fa fa-check'></i>Half Leather</li>"; }
if ($elecFoldingMirrors == 1) { echo "<li><i class='fa-li fa fa-check'></i>Electric Folding Mirrors</li>"; }
if ($rainSenseWipers == 1) { echo "<li><i class='fa-li fa fa-check'></i>Rain Sense Wipers</li>"; }
if ($xenonHeadlights == 1) { echo "<li><i class='fa-li fa fa-check'></i>Xenon Headlights</li>"; }
if ($electricSeats == 1) { echo "<li><i class='fa-li fa fa-check'></i><li><i class='fa-li fa fa-check'></i>Electric Seats</li>"; }
if ($frontCentreArmrest == 1) { echo "<li><i class='fa-li fa fa-check'></i><li><i class='fa-li fa fa-check'></i>Front Centre Armrest</li>"; }
if ($headRestraints == 1) { echo "<li><i class='fa-li fa fa-check'></i><li><i class='fa-li fa fa-check'></i>Head Restraints</li>"; }
if ($heatedSeats == 1) { echo "<li><i class='fa-li fa fa-check'></i><li><i class='fa-li fa fa-check'></i>Heated Seats</li>"; }
?>
</ul>
</div> <!-- end .col-sm-6 -->
Я был бы очень признателен, если бы кто-нибудь мог взглянуть и понять, почему появляются случайные галочки.
После внесения изменений в код, как упомянуто другим пользователем. Это мой результат
Ответ №1:
Я думаю, что здесь есть несколько вещей, которые можно было бы улучшить.
-
В программировании, когда вы имеете дело с условием «все или ничего» (логические значения), тогда вы должны использовать 0 для NO (или FALSE) и 1 для YES (или TRUE).
-
У вас есть две
<li>
в некоторых строках, таких как «Сиденья с электроприводом». if
Имеющиеся у вас инструкции будут скрывать весь текст, если у транспортного средства нет этой функции. Вам нужно обернуть инструкцию if только вокруг флажка.- Наконец, чтобы сделать код читаемым, я предлагаю использовать сокращение echo
<?= $variable; ?>
Применив эти предложения к вашему коду, вы получите это …
<div class="col-sm-6">
<ul class="fa-ul list-unstyled">
<?php
$checkMark = "<i class='fa-li fa fa-check'></i> "; // Leave the extra trailing space in this string.
?>
<?php if($alcantaraLeather == 1): ?><li><?= $checkMark; ?>Alcantara Leather</li><?php endif; ?>
<?php if($clothUpholstery == 1): ?><li><?= $checkMark; ?>Cloth Upholstery</li><?php endif; ?>
<?php if($velourTrim == 1): ?><li><?= $checkMark; ?>Velour Trim</li><?php endif; ?>
<?php if($fullLeather == 1): ?><li><?= $checkMark; ?>Full Leather</li><?php endif; ?>
<?php if($halfLeather == 1): ?><li><?= $checkMark; ?>Half Leather</li><?php endif; ?>
<?php if($elecFoldingMirrors == 1): ?><li><?= $checkMark; ?>Electric Folding Mirrors</li><?php endif; ?>
<?php if($rainSenseWipers == 1): ?><li><?= $checkMark; ?>Rain Sense Wipers</li><?php endif; ?>
<?php if($xenonHeadlights == 1): ?><li><?= $checkMark; ?>Xenon Headlights</li><?php endif; ?>
<?php if($electricSeats == 1): ?><li><?= $checkMark; ?>Electric Seats</li><?php endif; ?>
<?php if($frontCentreArmrest == 1): ?><li><?= $checkMark; ?>Front Centre Armrest</li><?php endif; ?>
<?php if($headRestraints == 1): ?><li><?= $checkMark; ?>Head Restraints</li><?php endif; ?>
<?php if($heatedSeats == 1): ?><li><?= $checkMark; ?>Heated Seats</li><?php endif; ?>
</ul>
</div> <!-- end .col-sm-6 -->
Комментарии:
1. Хм, это все еще отображает текст, но не галочку. В функциях, которые повторяют «false», я не хочу, чтобы появлялась галочка или текст. Таким образом, отображаются только функции, которые возвращают значение true. Я не совсем уверен, как вы используете сокращенные инструкции IF…
2. О, я понимаю. Тогда зачем вообще добавлять галочки? Галочка подразумевает, что они могут быть там или нет. Затем я скорректирую ответ, чтобы скрыть функции и флажок.
3. Это просто выглядело приятнее, добавив галочки вместо скучного списка. Извините за путаницу. Большое спасибо за вашу помощь
Ответ №2:
Вероятно, в вашей таблице стилей (CSS-файле) по умолчанию для тега ‘li’ установлена галочка. В Chrome по умолчанию используется маркер.
Итак, создайте CSS-файл и измените стиль тега ‘li’.
Надеюсь, это поможет.
element.style {
}
user agent stylesheet
li {
display: list-item;
text-align: -webkit-match-parent;
}