- Afficher des options en fonctions des villes
- Windows 11 afficher d'autres options - Guide
- Afficher appdata - Guide
- Afficher mot de passe wifi android - Guide
- Triez le tableau pour que les villes les plus peuplées soient en haut - Guide
2 réponses
5 déc. 2024 à 19:42
bonjour
il nous manque le contenu du fichier
fetch-lines.php
il serait bien également que tu ouvres la console JavaScript de ton navigateur que tu choisisses une ville et que tu regardes ce que ça affiche dans la console...
nb: pour débogier de l'Ajax (le fetch) je te conseille fortement d'utiliser le navigateur Firefox et pense bien, dans la console, à activer le débogage du XHR.
5 déc. 2024 à 22:52
Alors toi tu copies/colles du code sans savoir à quoi il sert ??
Dans ton javascript, tu fais un fetch sur le script php fetch-lines.php
fetch(`fetch-lines.php?city=${selectedCity}&type=${selectedTransport}`)
ce script est sensé récupérer, au format json, la liste des transports en fonction de la ville sélectionnée.
Cet appel ajax (via l'api fetch) est déclenché lorsque tu choisis une ville dans ta liste déroulante
city.addEventListener("change", () => {
En gros, ton script pourrait ressembler à un truc du genre :
<?php //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require_once ("assets/php/database.php"); //NB dans le dossier ASSETS en général on place les scripts "publiques" .. pas les accès à la bdd ! // récupération PROPRE des variables AVANT de les utiliser // NB: !empty fais déjà un isset .. pas besoin de faire les deux ! $city = !empty($_GET["city"]) ? $_GET["city"] : null; $type = !empty($_GET["type"]) ? $_GET["type"] : null; //Préparation de la requête : $sql = " SELECT * FROM ligne WHERE 1=1 "; $datas = []; //si tu as choisis une ville if($city){ $sql .= " AND ville=:city "; $datas[':city'] = $city; } //si tu as choisis un type de transport if($type){ $sql .= " AND type=:type "; // pas sûr du nom de la colonne.. ne connaissant pas la structure de ta table $datas[':type'] = $type; } //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } //On retourne le résultat au format json $resultat = $requete->fetchAll(); echo json_encode($result); exit;
NB: Pense à appliquer ceci pour tes codes PHP/PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Je te laisse adapter le script à tes besoins..
Si tu as des soucis, merci de faire une capture écran de la console
regarde ici, ça te donner des conseils pour débuguer ton code ajax
5 déc. 2024 à 21:17
hello. tout d'abord je n'ai pas de fichier fetch-lines (ça peut etre bien de le creer mais a voir). de plus j'ai dejà regardé dans la console du navigateur et rien ne s'affiche. enfin j'utilise déja firefox comme navigateur et le débogage xhr est déjà activé.
Pour le fichier fetch-lines en quoi il consisterai (pour etre sur) et si tu as une idée de la tete que ça dervait avoir ?
merci !