новичок в PHP, в настоящее время я кодирую страницу с многокритериальной формой поиска, которая вызывает у меня проблемы.
При использовании перезаписываемого URL я изначально столкнулся с проблемами при получении своей информации $ _POST. Я решил свою проблему, добавив флаг [QSA] в свое правило (во-первых, можно ли использовать $ _POST?)?
За исключением того, что у меня сейчас другие проблемы. 1) Теперь у меня есть симпатичные сообщения «Преобразование массива в строку» в ответ на каждый из идентификаторов, которые я запрашиваю (но у меня есть мои идентификаторы, отображая var_dump моего $ _POST). 2) У меня также есть сообщение «Невозможно изменить информацию заголовка - заголовки уже отправлены ...» (и вот где мне интересно, действительно ли флаг [QSA] является правильным). 3) Мой запрос SQL не выполнен (моя таблица пуста, в ней отображается переменная var_dump, в которой я хочу сохранить информацию, запрошенную запросом).
Вот мой p html, PHP код, а также мой RewriteRule:
RewriteRule ^trouver_un_jardin$ model/frontend/trouver.php [QSA]
p html:
<form action="trouver_un_jardin" method="POST">
<h2 class="py-3">Formulaire de recherche</h2>
<div class="form-group px-3">
<select name="idType[]" class="form-control my-5">
<?php foreach ($rechercheType as $searchType) : ?>
<option <?php echo $searchType["selected"] ?> value="<?php echo $searchType["id"] ?>"><?php echo $searchType["type_de_jardin"] ?></option>
<?php endforeach ?>
</select>
<select name="idTaille[]" class="form-control my-5">
<?php foreach ($rechercheTaille as $searchTaille) : ?>
<option <?php echo $searchTaille["selected"] ?> value="<?php echo $searchTaille["id"] ?>"><?php echo $searchTaille["taille"] ?></option>
<?php endforeach ?>
</select>
<select name="idZone[]" class="form-control my-5">
<?php foreach ($rechercheZone as $searchZone) : ?>
<option <?php echo $searchZone["selected"] ?> value="<?php echo $searchZone["id"] ?>"><?php echo $searchZone["zone"] ?></option>
<?php endforeach ?>
</select>
<select name="idPrix[]" class="form-control my-5">
<?php foreach ($recherchePrix as $searchPrix) : ?>
<option <?php echo $searchPrix["selected"] ?> value="<?php echo $searchPrix["id"] ?>"><?php echo $searchPrix["prix"] ?></option>
<?php endforeach ?>
</select>
</div>
<div class="form-group px-5">
<button class="btn btn-form btn-block" type="submit" name="action" value="search">Trouver</button>
</div>
<?php var_dump($_POST) ?>
<?php var_dump($jardins) ?>
</form>
php:
if (isset($_POST["action"]) && $_POST["action"] == "search") {
$req = "SELECT jardins.id, jardins.image, jardins.alt, jardins.titre, jardins.description, jardins.prix, jardins.href FROM jardins JOIN recherche_jardin ON jardins.id = id_jardin WHERE id_recherche_type = :idType AND id_recherche_taille = :idTaille AND id_recherche_zone = :idZone AND id_recherche_prix = :idPrix";
$stm = $sqlQuery->prepare($req);
$postValue = $_POST;
unset($postValue["action"]);
$stm->execute($postValue);
$jardins = $stm->fetchall(PDO::FETCH_ASSOC);
header("location: trouver_un_jardin");
};
Если бы вы могли помочь мне решить эти проблемы.
Заранее благодарю.