|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Bonjour,
tout d'abord je tiens à vous préciser que je suis méga débutante en Ajax. Et secundo, je pense que mon problème peut se résoudre grâce à Ajax mais je n'en ai pas la certitude. Je vous explique. J'ai un champ "Mail" où l'on tape une adresse et on a des solutions proposées pour ce qu'on a tapé (autocomplétion faite). Code :
Que ma fonction infodomaine(); écrite dans le code javascript, m'affiche le tableau de ma requête. Code :
Code :
J'ai tenté de mettre un if (var = 1) { faire requête }, en mettant la variable à 1 dans le javascript, mais ça c'est foireux totalement. Je sais que PHP est côté serveur et JS côté client, donc apparement j'ai lu à quelques endroits qu'Ajax était la meilleure solution, mais comme je n'y connais rien j'aurai besoin d'aide ... =) |
||||||
|
|
00
|
|
|
#2 | |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Bonjour,
Citation:
Le tuto Ajax de D.Cabasson "Ajax - une autocomplétion pas à pas" semble donc particulièrement adapté A+ |
|
|
|
00
|
|
|
#3 | |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Mais je l'ai déja faite mon autocomplétion (et je l'avais vu ce tuto mais ce n'est pas celui ci qui m'a servi ^^).
Mon problème est d'afficher les données correspondantes au mail tapé, à droite du champ. Apparement je devrais tester avec xmlhttprequest si j'ai bien lu, mais bon, je ne sais pas vraiment comment que ça fonctionne ... Citation:
|
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
|
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Ben je n'arrive pas à saisir où je suis censée mettre ma requête en fait dans ce tuto :/ les suggestions du tuto sont déja dans un fichier php qui est appelé.
|
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Citation:
Ajax (JS) appelle ta page PHP qui lance la requête SQL. La page PHP génère ensuite la réponse en fonction du résultat de la requête (via des "echo"). Ta page PHP doit donc générer le code HTML que tu récupéreras simplement via la propriété responseText de ton objet xhr .... A+ |
|
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Hum, est-ce que cela signifie que je suis obligée d'avoir une autre page à part où il y aura ma requête pour que ce que je veux fonctionne ?
Ou alors, est-il possible que dans mon fichier .php où j'ai tout mon code Ajax/JS et tout, je définisse une fonction et que mon code Ajax appelle cette fonction au lieu d'une page php ? En gros que j'ai ceci : function toutlecode() { code ajax, appel fonctionpour la requete } function requete() { requête à exécuter } |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Heu ... tu structures tes fichiers comme tu veux
Mais Javascript ne peut pas lancer une requête SQL sur ton serveur. ... PHP, si ! Et Ajax lui permet de transmettre ce résultat à ta page (sans rechargement). C'est ensuite la code Javascript de ta page qui récupère ce résultat pour l'afficher. Par contre, Ajax ne peut qu'appeler une page PHP, et non une fontion PHP. (voir côté PHP pour la manière d'organiser tes pages côté serveur) Comme dans tous les tutos associés à ce forum quoi ... A+ |
|
|
00
|
|
|
#9 | |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Citation:
Bn ben je vais tester avec une page à part alors, je verrai ça demain, merci de ton aide =) |
|
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
|
|
|
00
|
|
|
#11 | |||||||||||||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Bon alors le tuto avec l'autocomplétion pas à pas, je n'arrive pas bien à le comprendre celui-là :/ Donc j'ai tenté avec autre chose (uniquement la requête php de fin qui est dans un autre fichier) :
L'input où est tapé le mail : Code :
Code :
Code :
Code :
Code :
Code :
Et en fait, j'obtiens cette erreur là avec FireBug: Citation:
|
|||||||||||||
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Ben il est déclaré où, ton objet http ???
... et déclarer ta variable url avant de l'utiliser serait plus ... judicieux A+ |
|
|
00
|
|
|
#13 | ||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Citation:
Citation:
var http ? :/ [EDIT] J'ai fait var http; mais faut que je sache quelles propriétés mettre parce que maintenant j'ai cette erreur là : http has no properties [/EDIT] [EDIT 2] Bon, j'ai résolu ce petit problème de http, maintenant il faut que je parvienne à afficher les résultats de ma requête ![/EDIT] |
||
|
|
00
|
|
|
#14 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
|
|
|
00
|
|
|
#15 | ||||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Bon, je n'arrive toujours pas à récupérer les résultats de ma requête ... ><
Une fois sélectionné le mail, un div s'affiche à droite, et dans ce div il me faudrait les résultats de ma requête. Pour le moment j'ai ceci : - on tape le mail - un div s'affiche - dans ce div on tape une lettre au hasard - un autre div s'affiche mais le mail tapé est récupéré à ce moment là ET la requête est bien effectuée (c'est FireBug qui l'a dit et qui affiche les résultats dans la console FireBug) J'ai testé deux solutions, mais rien n'y fait, ça ne fonctionne pas :/ Voici ce que j'ai fait : Code :
Code :
|
||||
|
|
00
|
|
|
#16 | |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Citation:
Dommage car c'est lui qui contient la réponse d'Ajax Regarde de nouveau les tutos sur ce point ... A+ |
|
|
|
00
|
|
|
#17 | ||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
J'ai tenté ceci :
Code :
|
||
|
|
00
|
|
|
#18 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Un div n'a pas de value =>
Code :
document.getElementById('tralala').innerHTML = response;
|
|
|
00
|
|
|
#19 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 681 ![]() |
Merciiii E.Bzz =D ça s'affiche dans mon second div ^^
Maintenant il ne me reste plus qu'à voir comment l'afficher directement dans le premier div ! [EDIT] Ayé problème résolu ^^ [/EDIT] |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com