Autocomplétion PHP Javasript et Mysql
Fermé
Achille32
Messages postés
37
Date d'inscription
mardi 21 avril 2015
Statut
Membre
Dernière intervention
21 mai 2016
-
Modifié par jordane45 le 21/05/2016 à 17:09
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 21 mai 2016 à 20:15
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 21 mai 2016 à 20:15
A voir également:
- Autocompletion php
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Vim autocompletion - Astuces et Solutions
- Php if plusieurs conditions ✓ - Forum PHP
- Echo image php ✓ - Forum PHP
2 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié par gravgun le 21/05/2016 à 16:50
Modifié par gravgun le 21/05/2016 à 16:50
'lut,
si la page "index.php" est celle que tu nous montres, c'est car ton code PHP, lorsqu'il est appelé par l'auto-complétion, va certes renvoyer ta liste en format JSON... emballé dans le reste du code HTML de ta page, vu que tu ne le "supprimes" pas (ou plutôt, vu que tu l'envoies inconditionnellement); ce qui a pour conséquence de faire échouer l'interprétation des résultats.
La solution simple, et de toute façon la seule qui fait sens, c'est de déplacer le code PHP renvoyant la liste en dehors de ton index.php, et de le mettre dans un fichier adéquatement nommé (en mettant le dit nom dans ton script d'autocomplete).
Au passage, PDO c'est cool et ça empêche de se faire détruire sa base SQL via des injections... si on s'en sert bien.
Ici tu insères
Utilise plutôt les requêtes preparées comme ceci:
Aussi,
from human import idiocy
del idiocy
si la page "index.php" est celle que tu nous montres, c'est car ton code PHP, lorsqu'il est appelé par l'auto-complétion, va certes renvoyer ta liste en format JSON... emballé dans le reste du code HTML de ta page, vu que tu ne le "supprimes" pas (ou plutôt, vu que tu l'envoies inconditionnellement); ce qui a pour conséquence de faire échouer l'interprétation des résultats.
La solution simple, et de toute façon la seule qui fait sens, c'est de déplacer le code PHP renvoyant la liste en dehors de ton index.php, et de le mettre dans un fichier adéquatement nommé (en mettant le dit nom dans ton script d'autocomplete).
Au passage, PDO c'est cool et ça empêche de se faire détruire sa base SQL via des injections... si on s'en sert bien.
$requete = "SELECT * FROM produits WHERE nom_produit LIKE '".$q."%' LIMIT 0, 10" ;
Ici tu insères
$qdirectement dans ta requête, or un
htmlentitiesn'est pas suffisant pour protéger des injections ou attaques DoS.
Utilise plutôt les requêtes preparées comme ceci:
$requete = $bdd->prepare("SELECT * FROM produits WHERE nom_produit LIKE :nomprod% LIMIT 0, 10"); $resultat = $requete->execute(array(':nomprod' => $_GET['query']));Pas besoin de fonctions de transformation, PDO gère l'insertion de ton paramètre tout seul.
Aussi,
or dieest une mauvaise méthode de gestion d'erreur. Utilise les exceptions à la place.
from human import idiocy
del idiocy
Achille32
Messages postés
37
Date d'inscription
mardi 21 avril 2015
Statut
Membre
Dernière intervention
21 mai 2016
21 mai 2016 à 19:36
21 mai 2016 à 19:36
salut gravgun , ceci est bien ma page index et je vien de déplacer mon code php dans un autre fichier nommé page.php. puis j'ai remplacé dans javasript comme ceci:
<script> $(document).ready(function() { $('#langages').autocomplete({ serviceUrl:'page.php', dataType: 'json' }); }); </script>
Achille32
Messages postés
37
Date d'inscription
mardi 21 avril 2015
Statut
Membre
Dernière intervention
21 mai 2016
21 mai 2016 à 19:37
21 mai 2016 à 19:37
J'ai toujours pas de résultat
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
21 mai 2016 à 19:37
21 mai 2016 à 19:37
Le plus important: est-ce que ça marche?
Achille32
Messages postés
37
Date d'inscription
mardi 21 avril 2015
Statut
Membre
Dernière intervention
21 mai 2016
21 mai 2016 à 20:09
21 mai 2016 à 20:09
Bah... si vous pouvez etre un peu plus explicite dans vos explications..
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
>
Achille32
Messages postés
37
Date d'inscription
mardi 21 avril 2015
Statut
Membre
Dernière intervention
21 mai 2016
Modifié par gravgun le 21/05/2016 à 20:15
Modifié par gravgun le 21/05/2016 à 20:15
Pourtant je prend soin de rendre mes messages explicites... Que dit l'onglet "réseau" des outils développeur (accessibles via Ctrl+Shift+I sur Firefox/Chrome) quand on rentre du texte dans le champ ?
21 mai 2016 à 17:10
En complément, voici un exemple COMPLET d'ajax
https://forums.commentcamarche.net/forum/affich-33258760-remplir-un-formulaire-dynamiquement-en-fonction-d-une-combobox#2