Filter une requete avec AJAX
Posté : 29 août 2019, 14:49
Salut tout le monde,
J'ai terminé mon projet mais je but sur une technologie que je suis loin de maitrisé malheureusement pour moi.
Le but est de permettre à des associations de filtrer les résultat de la requête avec des checkboxes ( wifi, parking, handicap, ...)
Coté Base de donnée j'ai une colonne pour chaque type: wifi, parking, handicap .... qui vaut 1 ou 0 du coup.
Ma requête est :
J'ai terminé mon projet mais je but sur une technologie que je suis loin de maitrisé malheureusement pour moi.
Le but est de permettre à des associations de filtrer les résultat de la requête avec des checkboxes ( wifi, parking, handicap, ...)
Coté Base de donnée j'ai une colonne pour chaque type: wifi, parking, handicap .... qui vaut 1 ou 0 du coup.
Ma requête est :
// Traitement de la pagination
$page = (!empty($_GET['page']) ? (int)$_GET['page'] : 1);
$limite = 4; // Nombre d'élément à afficha dans la page
$debut = ($page - 1) * $limite;
// Requetes bars selon option
$sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM associations WHERE ville = :ville';
if (isset($_POST['terasse'])) {
$sql .= ' AND terasse = 1';
} else if (isset($_POST['parking'])) {
$sql .= ' AND parking = 1';
} else if (isset($_POST['wifi'])) {
$sql .= ' AND wifi = 1';
} else if (isset($_POST['restauration'])) {
$sql .= ' AND restauration = 1';
}
$sql .= ' LIMIT :limite OFFSET :debut'; // limite à 5
$sql = $bdd->prepare($sql);
$sql->bindParam(':ville', $ville, PDO::PARAM_STR);
$sql->bindValue('debut', $debut, PDO::PARAM_INT);
$sql->bindValue('limite', $limite, PDO::PARAM_INT);
$sql->execute();
// Calcul de la pagination
$resultFoundRows = $bdd->query('SELECT found_rows()');
$nombredElementsTotal = $resultFoundRows->fetchColumn();
$nombreDePages = ceil($nombredElementsTotal / $limite);
//var_dump($sql);
Coté checkboxes actuellement:
<form id="form" method="post" action="">
<li><label class="container_check">Terrasse
<input type="checkbox" name="terrasse" class="checkbox" <?=(isset($_POST['terrasse'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Wifi
<input type="checkbox" name="wifi" class="checkbox" <?=(isset($_POST['wifi'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Parking
<input type="checkbox" name="parking" class="checkbox" <?=(isset($_POST['parking'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
<li><label class="container_check">Restauration
<input type="checkbox" name="restauration" class="checkbox" <?=(isset($_POST['restauration'])?' checked':'')?>/><span class="checkmark"></span>
</label></li>
</form>
Du coup j'ai conscience que c'est en ajax que je dois faire ça mais je n'y comprends pas grand chose pour le coup, merci pour votre aide