Я настраиваю страницу каталога, которая отображает различные тренировки в зависимости от того, что ищется через текстовое поле (работает) и / или флажки (не работает)
Я не знаю, возможно ли это без кнопки отправки, но я бы хотел, чтобы она выполняла поиск элементов, а также позволяла искать несколько флажков
Я пытался искать помощь в Интернете, но не могу найти ничего, что связано с моим проектом.
$sqlBrowse = "SELECT * FROM workoutLibrary
WHERE name LIKE :findInName
OR bodyPart LIKE :findInBodyPart
OR muscleGroup LIKE :findInMuscleGroup
OR equipment LIKE :findInEquipment
ORDER BY name";
$searchTerm = '';
$search = '%';
if (isset($_POST['search'])) {
$searchTerm = $_POST['search'];
$search = '%' . $searchTerm . '%';
$stmt = $conn->prepare($sqlBrowse);
$stmt->bindParam(":findInName", $search);
$stmt->bindParam(":findInBodyPart", $search);
$stmt->bindParam(":findInMuscleGroup", $search);
$stmt->bindParam(":findInEquipment", $search);
$stmt->execute();
$exercises = $stmt->fetchAll();
}
else if (isset($_POST['checklist'])) {
$searchTerm = $_POST['checklist'];
$search = '%' . $searchTerm . '%';
$stmt = $conn->prepare($sqlBrowse);
$stmt->bindParam(":findInEquipment", $search);
$stmt->execute();
$exercises = $stmt->fetchAll();
}
?>
HTML:
<form action="directory.php" method="post">
<input type="checkbox" name="checklist[]" class="check" value="Dumbell"> Dumbbell<br>
<input type="checkbox" name="checklist[]" class="check" value="kettlebell"> Kettlebell<br>
</form>
<div class="col-sm-10">
<h1 class="theTitle"> Workout Directory </h1>
<div class="d-flex flex-wrap">
<?php
foreach ($exercises as $exercise) {
?>
<div class="card" id="workoutCard">
<div class="card-header"> <?= $exercise->name ?> </div>
<div class="card-body">
<div class="thumbnail"> </div>
<div class="info">
<a id="subTitle">Body Parts:</a> <?= $exercise->bodyPart ?><BR>
<a id="subTitle">Muscle Group:</a> <?= $exercise->muscleGroup ?><BR>
<a id="subTitle">Equipment Used:</a> <?= $exercise->equipment ?>
</div>
</div>
</div>
<?php
}
?>
Моя панель поиска работает отлично, поэтому я не отображал HTML для нее.
Я новичок, поэтому я не уверен, в чем я ошибся, я не уверен, что могу иметь два оператора выполнения PDO под одной и той же переменной имени.
Любая помощь или советы будут оценены
ОБНОВЛЕНИЕ: один флажок теперь будет отображать всю соответствующую информацию (без контрольного списка []), но он не работает для двух из них (я думаю, мне нужен контрольный список [], чтобы заставить эти два работать)
так что мой новый вопрос, как мне сделать так, чтобы:
$ search = '%'. $ searchTerm. '%';
отображает больше, чем один searchTerm