|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
Bonjour,
Je suis actuellement en projet professionnel et j'ai une partie en AJAX a faire. Le probleme, c'est que je ne comprends pas trop comment faire. Voilà le topo je dois faire un site de type E-commerce et pour ca, une page web est dédié a a la mise en place d'un pc sur mesure. Donc voila, j'ai une table produit, qui contient mes produit, une table type_produit, qui lui contient par exemple carte mère, processeur, carte graphique, etc... Et donc pour mon champ processeur, j'ai une liste déroulante qui doit m'afficher juste les marques dont les produits ont un id_type_produit = '1' (processeur) ET je ne vois pas comment faire en AJAX. Merci pour votre aide =° |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Bonjour,
Tu appelle en Ajax une page qui affiche juste tes données. Sais-tu ce qu'est Ajax ? Sinon tu as des tutoriels... http://ajax.developpez.com/cours/ |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
Bonjour à toi,
Oui je sais globalement ce qu'est AJAX et a quoi il sert. J'ai déjà regardé les tutoriels mais malgré ca, je n'arrive pas a mettre en place mon code. Donc si j'apelle une page avec mes données, cela veut dire qu'il me faut une page pour chaque select? |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 805 ![]() |
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
Oui, c'est a peu prèt ca, mais le problème,c'est que pour moi les listes déroulantes sont facultatives, on n'est pas obligé de faire un choix et ca je ne vois pas trop comment le faire ^^
|
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Facultatives pour faire quoi ?
Tu veux sans doute parler d'une auto-complétion ? http://dcabasson.developpez.com/arti...ion-pas-a-pas/ |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
Non, enfaite, j'ai trois listes déroulantes:
-> une avec une caractéristique(nombre de coeur) -> une avec les marques -> une avec mon produit ( ici, le processeur) On peut faire un choix avec les deux premieres listes déroulantes mais elle ne sont pas obligatoires pour avoir un produit. Car on peut avoir directement la liste de tous les processeurs disponibles. Voilà, je vous remercie. |
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Donc il s'agît bien du premier exemple dont il faut que tu t'inspire.
La seule subtilité dans ton cas est d'avoir deux listes qui permettent de mettre à jour la troisième. Coté serveur, tu prévoit un script(PHP ou autre, je ne sais pas ce que tu utilise) qui renvoit la liste. Ce script peut prendre en paramètre les données de tes deux premières listes afin de sortir les produit filtrés de la bdd. Les paramètres ne sont pas obligatoires, ce qui est important pour sortir la liste sans filtre. Coté client(javascript), tu appelle l'url en passant les paramètres correspondant.(il faut passer en paramètre GET ou POST les valeurs actuelles des deux premières listes) Le onreadystatechange mettra à jour avec la nouvelle liste. Pour initialiser la liste au chargement de la page, tu peux l'avoir déjà rempli coté serveur. Tu peux aussi appeler la fonction qui effectue un requête Ajax sans paramètre. Le premier option des select doit être vide (pas de value) afin de pouvoir réinitialiser le filtre. |
|
|
00
|
|
|
#9 | ||
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
Oui, ca y ressemble bien. Je vais essayer d'adapter l'exemple avec trois listes déroulantes. Je vous préviendrais si j'ai des problèmes pour le code.
Merci a vous =D Voila je reviens vers vous après plusieurs essais et j'ai un probleme du coté de mon script PHP : Code :
Merci =D |
||
|
|
00
|
|
|
#10 | |
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
Aussi, je ne vois pas comment faire ceci:
Citation:
|
|
|
|
00
|
|
|
#11 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
C'est manifestement un problème de PHP/SQL que tu as donc...
Il faut effectuer la requête SQL et générer les balises options même si tu n'as pas les paramètres(ton premier if dans le PHP). Par contre tu auras une clause WHERE différente(pas de filtre). |
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
D'accord et comment je fait ca car là, je ne vois pas vraiment comment faire ca^^
Aurait tu un exemple s'il te plait ? J'aimerais savoir comment faire aussi pour que le premier option de mes select ne prennent aucune valeur. Je vous remercie pour votre aide a l'avance |
|
|
00
|
|
|
#13 | ||||
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
Voila, je ne sait pas comment faire pour récupérer qu'un seul élément avec mon script.js:
Code :
Code :
|
||||
|
|
00
|
|
|
#14 | ||
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Quelque chose comme ça devrait faire l'affaire (pas testé, je ne garantie pas un code sans erreur) :
Code php :
|
||
|
|
10
|
|
|
#15 | ||
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
Merci je vais testé ca et je te dis ce que sa donne =D
Voila, je viens de testé et j'ai toujours un probleme avec mes deux premières listes^^ En gros, sans value, il me prend le texte dans mon option comme id, ce que je ne comprends pas. Je ne comprends pas a quoi sert ces deux lignes de code là: Code :
|
||
|
|
00
|
|
|
#16 | |||
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Pour ces deux lignes, il s'agit d'une opération ternaire.
Citation:
Code :
<option value="">-- choisir --<\option> |
|||
|
|
00
|
|
|
#17 | ||
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
ok merci mais j'ai trouvé une solution^^ c'est celle ci ^^
Code :
sinon juste une question supplémentaire. Je dois faire une autre onChange pour mettre a jour ma seconde liste par rapport a la première. Est ce que je peux mettre dans mon php le code d'un premier select et d'un second ou alors faut il que je crée un autre fichier php pour exécuter mes requetes? |
||
|
|
00
|
|
|
#18 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Tels que ton script est fait, il renvoie toujours une liste de produit. Donc il te faut un autre fichier.
|
|
|
00
|
|
|
#19 |
|
Invité régulier
![]() Jimmy PierratWebmaster Inscription : juin 2010 Messages : 40 ![]() |
d'accord, il y a t'il une possibilité de mettre sa dans un meme fichier?
|
|
|
00
|
|
|
#20 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
Utilise un paramètre supplémentaire que tu passera "en dur" pour savoir quelle liste est concerné, par exemple.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com