Separer résultat autocomplete
Résolu
gismin
-
gismin -
gismin -
A voir également:
- Separer résultat autocomplete
- Resultat foot - Télécharger - Vie quotidienne
- Séparer pdf - Guide
- Lexer resultat - Télécharger - Sport
- Resultat loto 5/90 - Forum Excel
- 5/90 resultat - Forum Linux / Unix
8 réponses
BOnjour,
Déjà, lorsque tu postes du code sur le forum, merci d'utiliser les balises de code
Explications (à lire entièrement !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, il faut que tu utilises la méthode "select"
Déjà, lorsque tu postes du code sur le forum, merci d'utiliser les balises de code
Explications (à lire entièrement !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, il faut que tu utilises la méthode "select"
$('#codep').autocomplete({ minLength: 2, source : 'completion.php' , select: function( event, ui ) { $('tonchamp1').val( ui.item.label ); // $("tonchamp2").val( ui.item.value ); // return false; } });
Ca marche pas.
Mon fichier PHP lui marche puisque je reçois la demande et l'affiche dans mon input codep.
$(function(){ $('#codep').autocomplete({ minLength: 2, source : 'completion.php' }); select: function( event, ui ) { $('codep').val( ui.item.label ); // $("ville").val( ui.item.value ); // return false; });
Mon fichier PHP lui marche puisque je reçois la demande et l'affiche dans mon input codep.
$requete = $bdd->prepare('SELECT codep, ville_nom FROM villes_france_free WHERE codep LIKE :term ORDER BY ville_nom'); // j'effectue ma requête SQL grâce au mot-clé LIKE $requete->execute(array('term' => $term.'%')); $array = array(); // on créé le tableau while($donnee = $requete->fetch()) // on effectue une boucle pour obtenir les données { array_push ($array,($donnee['ville_nom']).' '.($donnee['codep'])) ;// et on ajoute celles-ci à notre tableau } echo json_encode($array); // il n'y a plus qu'à convertir en JSON }
C toujours pas concluant avec:
Je ne crois qu'il y ait des erreurs de syntaxes
$('#codep').autocomplete({ minLength: 2, source : 'completion.php' , select: function( event, ui ) { $('#codep').val( ui.item.value ); $("#ville").val( ui.item.label ); return false; } });et
while($donnee = $requete->fetch()) { $array[] = array('label'=>$donnee['ville_nom'] , 'value'=>$donnee['codep']); echo json_encode($array); // il n'y a plus qu'à convertir en JSON }
Je ne crois qu'il y ait des erreurs de syntaxes
Où as tu vu que le json_encode devait se trouver dans la boucle ?
Exemple
et le fichier php (juste pour exemple )
Exemple
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> .<meta name="viewport" content="width=device-width, initial-scale=1"> <title>jQuery UI Autocomplete </title> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> </head> <body> <input type="text" id="codep"> <input type="text" id="ville"> <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script> $('#codep').autocomplete({ minLength: 2, source : 'completion.php' , select: function( event, ui ) { $('#codep').val( ui.item.label ); // $("#ville").val( ui.item.value ); // return false; } }); </script> </body> </html>
et le fichier php (juste pour exemple )
<?php //exemple $res = array(); $res[] = array("value"=>10000,"label"=>"v1"); $res[] = array("value"=>10000,"label"=>"v3"); $res[] = array("value"=>10000,"label"=>"v2"); echo json_encode($res); exit;
oui j'ai fait une erreur de transcription mais chez moi 'json_encode ' est après la boucle (plus haut j'ai posté correctement).
Mon fichier PHP marche puisqu'il me renvoie: ville et code postal et avec mon autocomplete original j'ai bien ces 2 valeurs qui s'inscrivent dans mon input "codep" quand j'en choisis et clique.
Comment reprendre "simplement" ces 2 valeurs et en afficher la ville dans l'input 'ville' ?
Ton code autocomplete semble logique mais je ne sais pourquoi il ne marche pas.
Mon fichier PHP marche puisqu'il me renvoie: ville et code postal et avec mon autocomplete original j'ai bien ces 2 valeurs qui s'inscrivent dans mon input "codep" quand j'en choisis et clique.
Comment reprendre "simplement" ces 2 valeurs et en afficher la ville dans l'input 'ville' ?
Ton code autocomplete semble logique mais je ne sais pourquoi il ne marche pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon, ça marche ! j'ai repris ton code HTML en entier alors qu'avant qu'en partie seulement et avec dans complete.php :
Pour ta 2eme variante PHP j'ai pas encore bien saisie pour l'insérer à la suite de ma requête MYSQL.
En tout cas merci beaucoup et de partager tes compétences.
while($donnee = $requete->fetch()) // on effectue une boucle pour obtenir les données { $array[] = array('label'=>$donnee['ville_nom'] , 'value'=>$donnee['codep']); }.
Pour ta 2eme variante PHP j'ai pas encore bien saisie pour l'insérer à la suite de ma requête MYSQL.
En tout cas merci beaucoup et de partager tes compétences.
Bonjour, je reviens sur le code autocomplete.
Le code de Jordan45 n'affiche que les codes postaux dans codep sans les villes correspondantes. Après divers essais c mieux avec les codes suivants:
Le seul petit problème (même si c pas trop génant) c qu'il affiche dans '#ville' le code postal à la suite de la ville . Je ne sais pas ce qu'il faut mettre comme valeur dans "$("#ville").val( ui.item.value);" pour n'afficher que la ville. J'ai essayé au pif avec $array[0] sans résultat.
Le code de Jordan45 n'affiche que les codes postaux dans codep sans les villes correspondantes. Après divers essais c mieux avec les codes suivants:
$('#codep').autocomplete({ minLength: 2, source : 'completion2.php' , select: function( event, ui ) { $('#codep').val(); $("#ville").val( ui.item.value); // return false; } });
include ('connect.php'); if(isset($_GET['term'])) { $term = htmlspecialchars($_GET['term']); $requete = $bdd->prepare('SELECT codep, ville_nom FROM villes_france_free WHERE codep LIKE :term ORDER BY ville_nom'); // j'effectue ma requête SQL grâce au mot-clé LIKE $requete->execute(array('term' => $term.'%')); $array = array(); // on créé le tableau while($donnee = $requete->fetch()) // on effectue une boucle pour obtenir les données { $array[] = array('value'=>$donnee['ville_nom'] , 'label'=>$donnee['codep']); // et on ajoute celles-ci à notre tableau } echo json_encode($array); // il n'y a plus qu'à convertir en JSON }
Le seul petit problème (même si c pas trop génant) c qu'il affiche dans '#ville' le code postal à la suite de la ville . Je ne sais pas ce qu'il faut mettre comme valeur dans "$("#ville").val( ui.item.value);" pour n'afficher que la ville. J'ai essayé au pif avec $array[0] sans résultat.
Enfin j'ai trouvé sur un forum "openClassroom" la solution:
Problème résolu.
$('#codep').autocomplete({ minLength: 2, source : 'completion.php' , select: function( event, ui ) { let valeurs = ui.item.value.split(' - '); $('#codep').val( valeurs[1] ); $('#ville').val( valeurs[0] ); return false; } });
Problème résolu.
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
J'ai 2 input text id"codepl" et id"ville".
Avec "autocomplete" (ci-dessous) vers mon fichier "completion.php" j'ai en retour quand je rentre un code postal des 'villes+ code postal' qui s'affichent das mon input "codep" puis je clique sur une proposition et cela s'affiche donc dans cet input.
Ce que je cherche à faire c de séparer la ville et de l'afficher aussi dans mon input id="ville".
Faudrait, par contre nous montrer le code php de ton fichier completion.php'
La réponse devant contenir un champ "label" et un champ"value"