Bonjour, tous d'abord je tiens a remercier la ou les personnes qui m'aideront.
Je suis sur un gros projet et j'ai un soucis avec un script d'autocompletion.
J'ai trouvé un bon de code que j'ai adapté a ma sauce pour faire de l'autocomplétion en javascript, php et mysql.
Le script est assez simple, il va cherche dans une table et affiche des valeurs sous le champ input.
les valeurs affichée apparaisse parfaitement mais lorsqu'on la sélection et qu'elle s'affiche dans le champs pour lancer la requet, la valeur s'affiche avec ces $eacute a la place des accent, des ' a la place des '
J'ai essayé de transformer ma valeur php par un nl2br ou un html_entity_decode mais ca ne marche pas. A mon avis le problèem est dans le script javascript et la, je ne maitrise pas assez !
Je vous met le code ci-dessous.
AFFICHAGE DU CHAMPS :
1 2 3
| $(document).ready(function() {
$('#langages').autocomplete('autocompletion/query.php');
}); |
<input type="text" NAME="critereRecherche" id="langages" class="search" placeholder="Votre recherche..." />
FICHIER QUERY.PHP QUI FAIT LA REQUET SQL
--------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?php
// si on reçoit une donnée
if(isset($_GET['q'])) {
$q = htmlentities($_GET['q']); // protection
// connexion à la base de données
try {
$bdd = new PDO('mysql:host=localhost;dbname=myBase', 'test', 'test');
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
// écriture de la requête
$requete = "SELECT SHOP_NOM FROM shop WHERE SHOP_NOM LIKE '". $q ."%' LIMIT 0, 10";
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
// affichage des résultats
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
echo $donnees['SHOP_NOM'] ."\n";
}
}
?> |
Fichier javascript je le met en pieces jointes car il fait quasi 1000 lignes !
Merci infiniment pour votre aide.
Partager