BARRE DE RECHERCHE EN PHP

Petit nouveau ! | 6 Messages

10 juil. 2019, 21:32

Salut à tous !
je souhaites créer une barre de recherche pour un site(site E-commerce) que je conçois actuellement. Aucun message d'erreur ne s'affiche, sauf que le résultat attendu n'est pas satisfaisant. Quand j'entre une recherche, et que je valide, je suis renvoyé sur la page "boutique" (page qui affiche les marques de véhicules).
Or je voudrais que si l'utilisateur entre par exemple "peugeot"... que tous les véhicules de marque "Peugeot" s'affichent automatiquement sur la page en cours.
Voici les quelques lignes de code que j'ai déjà

Code : Tout sélectionner

<?php try{ $bdd = new PDO("mysql:host=127.0.0.1;dbname=site e-commerce", 'root', ''); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(Exception $e){ echo $e->getMessage(); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Recherche</title> <link rel="stylesheet" type="text/css" href="bootstrap.min.css"> <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script> <body> <br><br> <div class="container"> <div class="row"> <div class="col-sm-0 col-md-2 col-lg-3"></div> <div class="col-sm-12 col-md-8 col-lg-6"> <form class="form-group" method="get" action=""> <input type="search" class="form-control" id="search-user" value="" placeholder="rechercher" > <input type="submit" name="" value=">>"> </form> <div style="margin-top: 20px"> <div id="result-search"></div> </div> </div> </div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script> <script src="bootstrap.min.js"></script> <script> $(document).ready(function(){ $('#search-user').onkeyup(function(){ $('#result-search').html(''); var utilisateur = $(this).val(); if(utilisateur != ""){ $.ajax({ type: 'GET', url: 'fonctions/recherche_utilisateur.php', data: 'user=' + encodeURIComponent(utilisateur), success: function(data){ if(data != ""){ $('#result-search').append(data); }else{ document.getElementById('result-search').innerHTML = "<div style='font-size: 20px; text-align: center; margin-top: 10px'>Aucun résultat</div>" } } }); } }); }); </script> </body> </html>
Voici la page qui devrait accueillir les résultats des recherches que j'ai nommé "recherche_utilisateur.php"

Code : Tout sélectionner

<?php try{ $bdd = new PDO("mysql:host=127.0.0.1;dbname=site e-commerce", 'root', ''); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(Exception $e){ echo $e->getMessage(); } if(isset($_GET['user'])){ $user = (String) trim($_GET['user']); $req = $bdd->prepare("SELECT * FROM products WHERE category LIKE '%$user%' LIMIT 10"); $s = $req->fetch(PDO::FETCH_OBJ); foreach($req as $r){ ?> <div style="margin-top: 20px 0; border-bottom: 2px solid #ccc"><?php $r['title'] . " " . $r['price'] ?></div> <?php } } ?>
Merci de m'aider, je suis vraiment coincé

Petit nouveau ! | 4 Messages

16 juil. 2019, 09:54

Salut, ton autocompletion sur l'event keyup fonctionne ?
Je ne vois pas de code qui prends en charge la fonction submit de ton formulaire, et l'action n'est pas défini donc redirige normalement vers ta page actuelle. Essais d'intercepter l'event submit de ton formulaire, d'y ajouter e.preventDefault pour annuler son action par défaut et ensuite tu gères le reste en AJAX comme tu le fais pour l'autocompletion (s'il fonctionne)