|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Ingénieur après-vente Inscription : mai 2011 Messages : 11 ![]() |
Salut vous tous !
Après avoir bien cherché (puisque je sais que cette question est récurrente), je n'ai trouvé nulle part de réponse à mon problème, d'ou mon post. Je souhaite faire en AJAX une partie d'un formulaire qui pour le moment est en pur PHP (j'ai un niveau inexistant en JS), et fonctionne très bien. Pour faire simple, j'ai un tableau de machines, de marques et modèles variés, qui sont installées chez plusieurs clients. Dans mon formulaire, on choisi d'abord le client, ensuite la marque (filtrée avec le choix du client), puis le modèle (filtré avec le client ET la marque) et enfin le nom de la machine, filtré avec les trois paramètres d'avant. voici mon extrait de code en php : Code php :
J'ai essayé d'adapter le très bon Tuto de Loïc Laffont, mais sans succès, puisqu'il ne passe que le choix de la liste N-1, et pas les autres choix... Comment faire pour récupérer dans mon fichier RetourPHP.php les choix des 2 ou 3 select précédents ?? Merci d'avance pour vos lumières !! |
||
|
|
00
|
|
|
#2 |
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 128 ![]() |
Bonsoir,
Je ne vois aucune fonction javascript moi, tu faits un submit à chaque onchange. Je ne vois pas trop le rapport avec AJAX ![]() A+. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : octobre 2009 Messages : 122 ![]() |
Bonjour,
il faudrait déjà penser à séparer un peu le code, parce que le traitement base de données au beau milieu de la vue html, c'est un peu sale. Ensuite ton problème n'est pas spécialement difficile à résoudre : - ton premier <select> dédié aux clients est peuplé au chargement de la page - tes autres <select> seront présent, mais vides (sans <option>) sur le onChange de ton <select> dédié aux clients, tu fais un appel Ajax vers une méthode à laquelle tu fournis l'id du client. Le serveur le traite et construit une liste de marques qui sera insérée dans ton second <select>. sur le onChange du second <select> dédié aux marques, tu fais un autre appel Ajax vers une méthode qui traitement l'id de la marque et du client, tu fais une requete contenant les 2 coté serveurs et tu peuples le 3è <select> et tu fais de même jusqu'au choix de la machine. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Ingénieur après-vente Inscription : mai 2011 Messages : 11 ![]() |
J'ai précisé que c'était mon code existant, c'est à dire en pur PHP...que je souhaite améliorer avec de l'Ajax pour éviter de recharger ma page à chaque changement dans un select..
|
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Ingénieur après-vente Inscription : mai 2011 Messages : 11 ![]() |
Citation:
Ce qu'il me manque, c'est la manière de le programmer, sachant que j'ai des connaissances quasi-nulles en JS...ma méthode consiste à customiser du code existant pour l'adapter à mon besoin tout en comprenant petit à petit comment ça fonctionne (formation sur le tas, comme on dit ;-)) La vraie question, c'est comment passer 2 id (ou 3, ou 4) en ajax. |
|
|
|
00
|
|
|
#6 | |
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 128 ![]() |
Citation:
A+. |
|
|
|
00
|
|
|
#7 | ||||
|
Membre habitué
![]() Inscription : octobre 2009 Messages : 122 ![]() |
Tu peux passer autant de paramètres que tu veux en Ajax, c'est comme un formulaire que tu soumets à un script serveur.
Le plus synthétique, c'est de faire pour chaque select une méthode JS et PHP. Tu dis ne pas bien connaitre le JS donc ce que je te conseille n'est peut-être pas l'idéal pour l'apprendre, mais jQuery permet de franchement simplifier l'accès aux éléments DOM et les requêtes Ajax. en HTML Code :
Code :
Bon courage |
||||
|
|
00
|
|
|
#8 | |
|
Invité de passage
![]() Ingénieur après-vente Inscription : mai 2011 Messages : 11 ![]() |
Citation:
A partir de 3 selects, le 3e dépendant des 2 autres, ça se complexifie (un peu pour les pros, beaucoup pour moi !), et la réponse de Bewidia va beaucoup m'aider !! Je vous tiens au courant quand c'est terminé, merci en tout cas ! |
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Ingénieur après-vente Inscription : mai 2011 Messages : 11 ![]() |
Bon, forcément, sans formation de base en JS, je galère un peu, mais je progresse.
J'ai compris le principe, mais j'ai une double difficulté à résoudre : 1-une série de 4 SELECT inter-dépendants les un des autres en cascade (le contenu du 4e dépend du choix des 3 autres et pas uniquement du dernier). Je dois donc me bidouiller une fonction qui fait passer plusieurs paramètres, ça me semble faisable avec un minimum de recherche. Une fois ces 4 select remplis, on envoie le tout vers une Database. 2-l'utilisateur doit pouvoir REVENIR sur ce formulaire, RETROUVER les choix qu'il y a fait (et qui ont donc été sauvés dans une base de données), et pouvoir les MODIFIER. Il faut donc que ma fonction, en plus de pouvoir passer plusieurs paramètres, puisse récupérer les valeurs de ces paramètres quand on est en mode modif (un flag en $_GET) pour ajouter la balise "selected" au choix extrait de la database. Avant de me lancer vers une méthode qui va ensuite me bloquer pour le point 2, si vous avez des conseils je suis preneur !! Merci d'avance (et je vais chercher une formation JS rapidos ;-)) |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : octobre 2009 Messages : 122 ![]() |
Si c'est un nouvel enregistrement, tes select seront vides à part le premier.
Si c'est une modification, en fonction de ce qu'il y a de sauvegardé dans ton enregistrement, tu peupleras directement les 4 select avec les valeurs possibles disponibles et un selected=selected sur la valeur de l'enregistrement. Le fonctionnement du javascript reste le même : il réagit a des onChange sur les select |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com