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 deux champs avec même nom [PHP 5.1]


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Federico_muy_bien
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 154
    Par défaut Récupérer deux champs avec même nom
    Bonjour !

    Je n'arrive pas à savoir si il est possible de récuperer 2 champs qui ont le même nom dans un formulaire.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form method="POST" action="../php/save.php" name="form">
    <input type="text" name="add" value="blabla" />
    <input type="text" name="add" value="blabla2" />
    </form>

    Il y a-t-il un moyen de récuperer les deux valeurs blabla et blabla2 ? (Il peut y avoir plus que 2 valeurs, une infinité)
    Pour l'instant blabla2 écrase mon blabla et je ne récupere que la derniere valeur.

    Merci de votre aide.
    Je continu mes recherches.

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Non il me semble que tu ne peut pas sauf pour un groupe de checkbox

  3. #3
    Membre confirmé Avatar de Federico_muy_bien
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 154
    Par défaut
    Salut amoiraud !

    argh ! Dommage !!

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ils peuvent avoir le meme nom au départ mais pas à l'arrivée.
    Démonstration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="POST" action="../php/save.php" name="form">
    <input type="text" name="add[]" value="blabla" />
    <input type="text" name="add[]" value="blabla2" />
    </form>
    à l'arrivée tu recois $_POST['add'] qui contient array(0=>"blabla", 1=>"blabla2")
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Ah ben je pensait qu'on pouvais faire ca uniquement avec les checkbox mais je me trompais...
    C'est bon à savoir

  6. #6
    Membre confirmé Avatar de Federico_muy_bien
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 154
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ils peuvent avoir le meme nom au départ mais pas à l'arrivée.
    Démonstration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="POST" action="../php/save.php" name="form">
    <input type="text" name="add[]" value="blabla" />
    <input type="text" name="add[]" value="blabla2" />
    </form>
    à l'arrivée tu recois $_POST['add'] qui contient array(0=>"blabla", 1=>"blabla2")
    MA - GNI - FI - QUE
    C'st exactement ce que je voulais !!! J'avais essayé de récuperer un array à la fin mais je n'avais pas inserer la petite astuce au début : les [] !

    Merci beaucoup !

  7. #7
    Membre confirmé Avatar de Federico_muy_bien
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 154
    Par défaut
    Re bonjour !
    J'aurais aimé une derniére précision :
    Est ce que les valeurs récuperées seront toujours dans l'ordre de la page HTML ?

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 176
    Par défaut
    bonjour,

    m'étant bien fait ch## a faire un équivalent de ca en javascript (pour qu'on puisse ajouter dynamiquement plein de fois le même champs avec un ajout de "_"+nbreoccurence, les occurences stockées dans un tableau javascript qui se remplit au fur et a mesure de la page PHP... c'est moooche), je suis bien interessé par ce que je lis la.

    Seulement... est ce qu'au niveau javascript derrière il est possible d'accéder au tableau de la même manière ou on ne retrouvera les données qu'au niveau du $_Post?
    (typiquement dans mon cas, pour pouvoir supprimer le premier champ sans supprimer les données saisies dans le 2e...)

  9. #9
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    perso je pense pas qu'on puisse mais la petite question, comme tu les génère en jvs tu peux incrémenter le nom histoire d'avoir un nom unique non? sinon un id unique puisque la norme en principe veux que le nom ne soit pas unique mais l'id oui.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 176
    Par défaut
    c'est déjà ce que je fais, mais ca implique une structure un peu surviolente dans mon cas précis (je me retrouve avec des tableaux triple entrée pour stocker le nombre d'occurence déjà existant de chaque élément, pour pouvoir faire l'incrémentation). Donc si j'avais pu simplifier tout ca j'aurai adoré.

    Mais bon c'est pas grave je vais en rester avec mon javascript qui effectivement rajoute des éléments dont l'ID est incrémenté au fur et a mesure des ajouts.

    Merci !

  11. #11
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Citation Envoyé par funfox Voir le message
    Donc si j'avais pu simplifier tout ca j'aurai adoré
    J'ai fait le code ci-dessous il y a quelques années. Si ça peut te servir en l'adaptant à ton problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
      if (isset($_POST['eq']))
      {
        foreach($_POST['eq'] as $nom => $valeur)
        {
          echo $nom . ' => ' . $valeur . '<br>';
        }
      }
    ?>
    <html>
      <head>
        <script type="text/javascript">
          var nb = 0;
     
          function creeElem(type, place)
          {
            elem = document.createElement(type);
            return place.appendChild(elem);
          }
     
          function creeInput(type, nom, place)
          {
            cellule = creeElem(type, place);
            cellule.innerHTML = '<input type="text" id="' + nom + '" name="' + nom + '" value="Element ' + nb + '" onchange="test(this)" />';
          }
     
          function ajoute_ligne()
          {
            emplacement = document.getElementById("mon_tableau");
     
            //-- création d'une ligne ----------
            ligne = creeElem("tr", emplacement);
     
            //-- création d'une cellule avec 1 input ----------
            nb ++;
            creeInput("td", "eq[" + nb + "]", ligne);
          }
     
          function supprime_ligne()
          {
            emplacement = document.getElementById("mon_tableau");
            if (! emplacement.hasChildNodes()) return;
     
            //-- effacement de la dernière ligne ----------
            ligne = emplacement.getElementsByTagName("tr");
            emplacement.removeChild(ligne.item(ligne.length - 1));
          }
        </script> 
      </head>
      <body>
        <form name="formulaire" action="" method="post">
          <table align="center" border="0">
            <tbody id="mon_tableau">
            </tbody>
          </table>
          <table align="center" width="50%">
            <tr>
              <td align="center">
                <input type="button" value="ajouter une ligne" onclick="ajoute_ligne()" />
              </td>
            </tr>
            <tr>
              <td align="center">
                <input type="button" value="supprimer une ligne" onclick="supprime_ligne()" />
              </td>
            </tr>
            <tr>
              <td align="center">
                <input type="submit" value="envoyer" />
              </td>
            </tr>
          </table>
        </form>
      </body> 
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Empecher l'ajout de deux champs de même nom
    Par fatich dans le forum VB.NET
    Réponses: 8
    Dernier message: 12/05/2014, 18h13
  2. [MySQL] Récuéprer deux champs au meme nom dans un Innerjoin
    Par easyjava dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/10/2006, 12h25
  3. requete sur 2 tables liées avec même nom de champs
    Par Australia dans le forum Access
    Réponses: 5
    Dernier message: 02/02/2006, 11h38
  4. Récupérer tous les champs de même nom
    Par hlr dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/02/2005, 13h26
  5. ASP champs avec même nom
    Par pete007 dans le forum ASP
    Réponses: 8
    Dernier message: 03/05/2004, 22h58

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