IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupérer les données d'un formulaire


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut Récupérer les données d'un formulaire
    Bonjour,

    J'aimerai récupérer les données de mon formulaire et les afficher par la suite. Je sais très bien qu'il faut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $toto = $_POST['champ'];
    Mais j'aimerai faire en sorte que ma variable $toto puisse récupérer dans un tableau, toutes les données de mon formulaire sans devoir préciser variable = champ.

  2. #2
    Membre chevronné Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Par défaut
    Bonjour,

    Tu veux dire que $toto est un tableau?
    Ou que tu récupères des données d'un tableau?

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Je pense qu'il voudrait récupérer, s'il a 5 champs formulaires, tout dans $toto.

    Dans ce cas tu créés un array en effet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $toto = array($_POST['val1'],$_POST['val2'],$_POST['valn']);
    Après tu peux faire des tableaux plus évolués pour accéder directement à tes variables du tableau ($key => $value).

  4. #4
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Normalement, je faisais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $toto = array(
    $_POST['champ1'],
    $_POST['champ2'],
    $_POST['champ3'],
    $_POST['champ4'],
    $_POST['champ5']);
    Maintenant j'aimerai savoir si y a moyen d'éviter d'écrire tout ça et de trouver une méthode qui me permettra de récupérer les données de mon formulaire 'frm_inscription' sans devoir spécifier $_POST['champ1']...

  5. #5
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Citation Envoyé par bob633 Voir le message
    Je pense qu'il voudrait récupérer, s'il a 5 champs formulaires, tout dans $toto.

    Dans ce cas tu créés un array en effet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $toto = array($_POST['val1'],$_POST['val2'],$_POST['valn']);
    Après tu peux faire des tableaux plus évolués pour accéder directement à tes variables du tableau ($key => $value).
    Oui c'est ce que j'ai fais mais j'aimerai faire un truc comme ça (si possible) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $toto = array(données du formulaire);

  6. #6
    Membre chevronné Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Par défaut
    Je pense que tu es obligé de préciser quelle donnée du formulaire tu veux attribuer avec son identifiant donc d'après moi y'a aucun moyen d'éviter ça.

  7. #7
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    oui c'est ce que je me dis aussi car j'ai rien trouvé afin d'éviter d'écrire toutes ses lignes Merci à vous

  8. #8
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,
    il est possible de faire comme ça pour éviter de tout se taper à la main (surtout quand il y en a plein) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $toto = array();
    for($i = 1; $i <= 5; ++$i) {
       $toto[] = $_POST["champ$i"];
    }

  9. #9
    Membre chevronné Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Par défaut
    J'ai failli le dire mais je pense pas que le vrai nom de ses champs soit champ1, champ2, etc... ?

  10. #10
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Oui exactement, cette solution est bonne si les champs sont nommés 'champ1, champ2,...' mais pour éviter d'écrire toutes ces lignes, je suis prêt à renommer mes champs

    Merci

  11. #11
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par spamitovic Voir le message
    Oui exactement, cette solution est bonne si les champs sont nommés 'champ1, champ2,...' mais pour éviter d'écrire toutes ces lignes, je suis prêt à renommer mes champs

    Merci
    Avant de t'embarquer là-dedans, je m'arrêterais 2 secondes pour me poser la question d'une colossale erreur de conception...
    D'expérience, quand t'es rendu à nommer tes champs "champ1, champ2..." c'est que les carottes devraient être bientôt cuites.

  12. #12
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Je suis tout à fait d'accord avec vous, là je remarque que j'aurai des problèmes de conception sans limite et qu'ils m'obligeront de tout refaire, donc j pense que j'utiliserai juste la vieille méthode

  13. #13
    Membre actif
    Inscrit en
    Février 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 47
    Par défaut
    $mes_variables = $_POST;

    sa te convient pas sa ?

  14. #14
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Au pire il est aussi possible d'utiliser un tableau pour ranger des valeurs proches.
    Quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="champ[]" value="" />
    Ensuite tu récupèreras comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['champ'][0], $_POST['champ'][1]...$_POST['champ'][n] // Autant de fois que d'input écris précédemment
    Du coup cela donnerait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $toto = $_POST['champ'];

  15. #15
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Si si c'est juste que j'aimerai savoir si je peux en trouver mieux que ça... juste pour infos c tout

  16. #16
    Membre chevronné Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Par défaut
    Je ne pense pas, et je rejoins rawsrc à 100% à propos de ce type d'appellation, à éviter absolument. Utilise la "vieille méthode" c'est mieux pour t'y retrouver dans ton code

  17. #17
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Ou encore tu peux affiner la méthode des tableaux pour les input.
    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if(isset($_POST['envoyer']))
    {
    foreach($_POST['champ'] as $key => $value)
    echo $key .'='. $value.'<br>'; 
    }
     
    ?>
    <form method="post" action="#">
    <input type="text" name="champ[toto]"/>
    <input type="text" name="champ[titi]"/>
    <input type="text" name="champ[tata]"/>
    <input type="submit" value="envoyer" name="envoyer"/>
    </form>
    Cela dit c'est surtout pratique pour regrouper certains champs dans un formulaire (qui par exemple subiront le même traitement). Pour un formulaire entier l'intérêt n'est pas évident puisque tu peux tout aussi bien lister la super globale $_POST.

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/01/2020, 14h21
  2. [FORM] récupérer les données d'un formulaire
    Par dragonfly dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/12/2007, 13h53
  3. Réponses: 14
    Dernier message: 15/05/2007, 14h51
  4. Récupérer les données d'un formulaire
    Par rimeh dans le forum Langage
    Réponses: 12
    Dernier message: 05/02/2007, 14h58
  5. récupérer les données d'un formulaire un peu spécial
    Par Jim_Nastiq dans le forum Interfaces Graphiques
    Réponses: 12
    Dernier message: 10/07/2006, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo