Menu déroulant dynamique

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 févr. 2006, 20:44

qu'entends tu par "poster" ?

afficher à l'écran les valeurs séléctionnées des listes ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

BelleIle
Invité n'ayant pas de compte PHPfrance

02 avr. 2007, 18:23

Ce bout de code est carrement bon et pratique !!!

Mais j'ai le même problème...

Maintenant, je n'arrive pas a envoyer les données grâce au formulaire
et le bouton envoyer.

En fait le formulaire tourne sur la mm page...

Franchement je séche... Comment contourner ce problème ?

Merci à l'auteur ! Il sera cité ^^ lol ^^

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 avr. 2007, 18:45

Depuis il y a peut être eu du changement dans la FAQ

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

BelleIle
Invité n'ayant pas de compte PHPfrance

02 avr. 2007, 19:00

Hélas, je n'ai rien trouvé...

Par contre c'est assez normal, si je post sur la page en elle même, je ne peux pas envoyé la valeur des 2 champs pour mettre a jour ma fiche...

Je cherche un peu partout mais franchement je sais pas trop.

Je devrais peut être me rapprocher de Cyrano...

Merci d'avance en tout cas .

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 avr. 2007, 20:11

Tu devrais plutôt ouvrir un post et y exposer clairement ton souci avec du code. :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 1 Messages

02 avr. 2007, 20:34

En fait le code est exposé plus haut... par Cyrano...

J'utilise le même code...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

03 avr. 2007, 10:20

On peut tourner en rond longtemps comme ça :?

Lors de la validation du formulaire sur clic du bouton "envoyer" tu récupères les données sur cette même page il suffit donc d'effectuer le traitement de ces données sur cette même page.
if( !empty($_POST['liste_1']) && !empty($_POST['liste_2']))
{
    // alors traitement du formulaire
}
else
{
   //affichage du formulaire
}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

03 avr. 2007, 11:21

J'ajoute que j'ai envoyé une réponse à ton MP BelleIle, je ne pourrai pas dire grand chose de plus que ce que vient d'expliquer Truc.

Éventuellement, ce que tu pourrais faire, c'est ajouter un évènement dans la balise <select> de la seconde liste pour modifier la valeur de l'attribut action du formulaire de façon à ce que si tu as sélectionné une valeur, le clic sur le bouton d'envoi pointe vers une autre page. Mais cette formule pose des problèmes lors de la validation si d'autres données indépendantes des listes ne sont pas bonnes. il faut alors revenir vers la page du formulaire et tu risques de perdre les données déjà saisies.

C'est pour ça qu'il est plus pratique à mon sens de tourner sur la même page : On teste si des données ont été envoyées ou non et en fonction de ce qu'on trouve, on affiche telle ou telle partie éventuellement mise à jour ou encore on procède au traitement des données et si tout se passe bien, on affiche autre chose, un message indiquant le bon déroulement des opérations par exemple.

Regarde dans la FAQ un autre tuto sur la validation de formulaires complexes : il fonctionne selon ce principe.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: