begin process at 2012 02 13 09:05:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Problème récupération des variables depuis un formulaire inclus dans un code php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème récupération des variables depuis un formulaire inclus dans un code php

vendredi 20 juin 2008 à 15:57:55 | Problème récupération des variables depuis un formulaire inclus dans un code php

anakyl

Bonjour à tous,

Je suis depuis plusieurs jours sur un problème que je n'arrive pas à résoudre.

Je souhaite créer un formulaire avec une liste déroulante proposant 3 choix, dont chacun renvoi vers un formulaire différent, et ainsi de suite.

Exemple :

Choisissez votre article :
- Outils -> Si choisi me renvoi avec formulaire outils
- Accessoires -> Si choisi me renvoi avec formulaire accesoire
- Divers -> Si choisi me renvoi avec formulaire divers

Shématiquement, c'est comme une arborescence avec différents chemins (formulaires) en fonction du choix effectué. Et chaque variable doit être récupérée d'une page à l'autre.

Et donc afin d'afficher le bon formulaire en fonction du choix, j'utilise la méthode if, elseif, else.

Exemple :

$article = $_POST['article'];
if($article == 'outils']{
  echo
"<label>Choisissez un outil :</label>
<SELECT  name=\"outil\">
<OPTION  value=\'cle\' selected=\"selected\" >cle</option>
<OPTION  value=\'marteau\'>marteau</option>
<OPTION  value=\'tourne vis\'>tourne vis</option>
<OPTION  value=\'ciseaux\'>ciseaux</option>
<OPTION  value=\'perceuse\'>perceuse</option>
</select>"
;
}
elseif($article = 'accessoires'){
  echo  // Formulaire accésoire et ainsi de suite...
}
   else{ echo // forumlaire divers
  }
?>

Il y a un slash devant chaque apostrophe et accent, car à chaque fois on me retournait des erreurs de syntaxes à ce niveau là.

 Je n'ai aucun problème pour afficher le bon formulaire suivant le choix du 1er formulaire vers le 2ème (car le 1er est entièrement en html), mais concernant le fait de passer du 2nd au 3ème formulaire, cela ne fonctionne pas car les variables ne sont pas transmises (et car le 2nd formulaire est entièrement inclus dans un code php).

Pour information, je n'ai pas inclus <form method="post"></form> dans le code php. Il se présente ainsi :

<form method="post" action="page3.php">
<?php//le code ci-dessus avec les if, elseif et les formulaires ?>
<input type=submit name=valider>
</form>

Je suis débutant.. Je ne sais pas du tout si j'utilise la bonne méthode.. J'espère que c'est un peu plus claire pour vous. Si ça se trouve, je fais n'importe quoi. J'essaie désespérément de récupérer les variables du formulaire avec liste déroulante.

J'espère que mon message est clair.

Merci pour votre aide.

samedi 21 juin 2008 à 21:46:10 | Re : Problème récupération des variables depuis un formulaire inclus dans un code php

JoJo738

Membre Club
Salut !

Je m'ennuyais ferme .... et j'ai codé ^^
Donc, j'ai fait un petit code pour montrer comment faire.
En fait, j'ai supprimé ton IF/ELSE, pour le remplacer par un SWITCH.
Tu dis pour tes \", mais tu te complique la vie .... fais un echo '...'; (avec des simples quotes ( ' )) et met tes " normales pour ton formulaire ;)
Et pour ton problème, en fait tu dois sauvegarder tes informations. Pour celà, tu traites tes données normalement, sauf qu'au lieu de les sauvegardées, tu les mets dans ton formulaire. (une boucle me semble le plus adapté). Pour celà, fait des <input type="hidden" />

Voilà mon code (pas testé ;))

<?php

// Je conseil une fonction utilisant magic_quotes_runtime(); pour nettoyer les POST, GET, COOKIES, ... (addslashes/stripslashes)

// La fonction de traitement qui permet de sauvegarder les informations
function hidden_POST()
{
        $args=func_get_args();
        $list=array();
        if(count($args)==0)
        {
                $args[0]=true;
        }

        foreach($argsas$val)
        {
                if($val===true)
                {
                        $list=array();
                        foreach($_POSTas$post_name=>$post_val)
                        {
                                $list[$post_name]='<input type="hidden" name="'.urlencode($post_name).'" value="'.urlencode($post_val).'" />';
                        }
                }
                elseif(isset($_POST[$val]))
                {
                        $list[$val]='<input type="hidden" name="'.urlencode($val).'" value="'.urlencode($_POST[$val]).'" />';
                }
        }
       
        returnarray_unique($list);
}

if(isset($_POST['article']))
{
        // On fait un SWITCH, une série de if/else équivalent à :
        // If( $val == $a ) { ... }
        // else If($val == $b ) { ... }
        // else { ...} (else -> "default :")
        // On force la case (minuscule)
        switch(strtolower(urldecode($_POST['article'])))
        {
                // If ... == 'article'
                case'article':
                        echo'
  <form action="" method="POST">
   <p>
   '
,implode('', hidden_POST()),'
    <label for="outil">Choisissez un outil :</label>
    <select name="outil" id="outil">
      <option value="cle">Cle</option>
      <option value="marteau">Marteaux</option>
      <option value="tourne vis">Tourne vis</option>
      <option value="ciseaux">Ciseaux</option>
      <option value="perceuse">Perceuse</option>
    </select>
   </p>
  </form>'
;
                        // Et hop, un echo '...'; (qui est plus recomandé que echo "...") et plus besoin de \" (mais besoin pour les \')

                        break;

                case'accessoires':
                        // ...
                        break;

                // formulaire défault (else)
                default:
                        // ...
                        break;
        }
}

/*
 * Ici, c'est " implode('', hidden_POST()) " qui fait tout.
 * Grâce à elle, tu récupère TOUTES les informations envoyées précedemment. En fait, elle renvoie les valeurs POST à l'aide d'input hidden.
 * Son utilisation :
 *   hidden_POST() & hidden_POST(true) : retourne un Array contenant TOUS les _POST
 *   hidden_POST('mon_form1', 'mon_form2') : retourne les X _POST demandés
 * Elle réenvoi un Array avec les <input type="hidden" /> demandés
 * Il suffit donc d'utiliser un inplode('', $resultat_de_la_fonction); pour afficher
 */


?>



Si ma reponse te convient, merci de l'accepter ! 
vendredi 27 juin 2008 à 09:46:05 | Re : Problème récupération des variables depuis un formulaire inclus dans un code php

anakyl

Bonjour,

Je suis vraiment désolé de répondre aussi tard. J'étais très pris.

JoJo738 je te remercie du fond du coeur. J'ai suivi tout tes conseils, et ça marche nikel.

Merci infinimement


Cette discussion est classée dans : problème, code, php, formulaire, article


Répondre à ce message

Sujets en rapport avec ce message

problème Formulaire(select)?? [ par minoula2006 ] Bonjour, J'aimerai bien que vous m'aider à résoudre mon problème, je programme en PHP un formulaire ou je doit ajouter une actualité qui utilise un t un problème avec mon formulaire en utilisant php et mysql [ par lebienestrare ] Bonjour tout le monde,j'ai un problème avec ma base de données(connexion entre php et mysql),le problème est: J'ai créé un site en php,j'ai fait une f Faire un update sql sur plusieurs ligne avec un formulaire [ par Bxapero ] Bonjour, Je créer un logiciel pour la société que je monte, je suis bloqué pour faire un update a partir d'un formulaire générer en php. Je ne sais formulaire dynamique php ,sqlserver [ par hantouva ] bonjour; voila je fais un site web dynamique en php et jutilise une base de donnees sql server je bloque au niveau du formulaire de recherche qui do Lire/traduire du code php depuis la base de donnée [ par bruce207 ] Bonjour, j'ai un code en php qui s'execute lorsque je l'insère directement dans la page php (il sert à affiché un diaporama) et il s'affiche alors sur probleme de commentaire sur article en php [ par jeffreynaz ] Bonjour je vous expose le pb : voila sur mon site j'ai des articles et j'aimerais pouvoir les commenter dans ma base j'ai donc une table article et recuperation donnée dans variable en local OK sur free.fr NOK [ par folow ] bonsoir les gens ... Voila je me suis remis au php depuis 3 semaines afin de mettre mon CV en ligne (passons) Et la problème, J'épluche google et tou problem de liste deroulante [ par beloufa26 ] salut j'ai un problem avec ma liste deroulante quand je enregistrer les valeurs du formulaire tous marche bien sauf le problem si par exemple je ch formulaire [ par nicodonat ] bonjour j'ai voulu créer un formulaire pour mon site .Normalement le message doit arriver directement dans ma boite mail.C'est le cas c'est déjà ça l Passage de variables via formulaire [ par jnkfou ] Bonjour, je suis en train de creer une page qui permettrais de modifier le profil de l'utilisateur (c'est a partir un d'un blog wordpress que j'ai mo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,276 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales