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 des données d'un tableau html [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Récupérer des données d'un tableau html
    Bonjour tout le monde

    j'ai un tableau html avec des champs de saisie dans chaque cellule je veux récupéré les valeurs entrée par l'utilisateur et les mettre dans un autre tableau html d'une autre page

    page1:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <form name="form1" method="post" action="tableau2.php">
    <td height="33px"><input type="text" name="l1c1" class="l1c1"></td>
    </from>

    page2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td class="cellule1"><?php echo $_POST['l1c1'];?></td>

    je dois faire la meme chose pour toutes les cas?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    tu ne peux envoyer au serveur qu'un formulaire a la fois, donc fait plutot comme ceci pour envoyer tous tes champs d'un coup. (en plus les <form> entre les <td> c'est interdit)

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form name="form1" method="post" action="tableau2.php">
    <table>
      <tr>
        <td><input type="text" name="l1c1"></td>
        <td><input type="text" name="l1c2"></td>
        <td><input type="text" name="l1c3"></td>
      </tr>
    //etc...
    </table
    </form>
    [EDIT: merci Couci de la remarque form, j'avais pas vu :]

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Points : 95
    Points
    95
    Par défaut
    Bonjour !

    Oui, la solution de gototog est la bonne, et ensuite tu récupère les données grâce au $_POST['l1c1'] ou $_POST['l1c2'] ou encore $_POST['l1c3'] en fonction de la donnée que tu veux récupérer

    Petite correction cependant : en fermant ta balise de formulaire </form> et non pas </from>

    Bonne continuation !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    gototog, c'est ce que je fais mon probleme a ce que je suis obligé de les récupéré de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td class="cellule1"><?php echo $_POST['l1c1'];?></td> 
    <td class="cellule1"><?php echo $_POST['l1c2'];?></td>
    ya pas un autre moyen au je ne suis pas obligé des réécrire la meme chose pr chaque cellule

    ps: ça marche tres bien mais je veux avoir une méthode plus pratique car j'ai bcp de cellule

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    y'a presque toujours moyen

    Seulement, je pense qu'on arrive directement dans du bidouillage.

    disons que tes champs input sont nommés nomInput1, nomInput2, nomInput3 etc.. jusqu'a 99
    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
     
    <?php
    $nb_input_max= 99;//ton nombre d'inputs
    ?>
    <table>
      <tr>
      <?php
      for($i=1; $i<= $nb_input_max; $i++) //une petite boucle : pour chaque input
      {
        if(isset($_POST['nomInput'.$i]))//on vérifie que ta variable existe, pour éviter les erreurs php
        { ?>
          <td><?php echo $_POST['nomInput'.$i];?></td>  <?php
        }else{
           echo '<td> erreur: $_POST["nomInput"'.$i.'"] n\'existe pas</td>';
        }
      } ?>
      </tr>
    </table>
    Voila, sauf que ce tableau te génère qu'une seule ligne, c'est fait volontairement, il est juste la pour te donner de l'inspiration, a toi de trouver le reste (petit indice, on rajoute des <tr> après un certain nombre de <td> )
    puis, fait le pour la génération du formulaire, en remplacant les $_post par des input par exemple

    EDIT: je viens de me rendre compte que l1c1 correspond a ligne1colonne1.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    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
    76
    77
    78
    79
    80
    81
    82
    83
     
    <table>
     
    <?php
    		 $nb_colonne_max= 18;
             $nb_ligne_max=13;
            for ($j=1;$j<=$nb_ligne_max;$j++)
            {
             ?>
    		 <tr>
    		<?php
    switch ($j) // on indique sur quelle variable on travaille
    {
    case 1: ?>
    <th colspan="3" scope="row">Stock Initial</th>
    <?php
    break;
    case 2: ?>
              <th  rowspan="6" scope="row">Entées</th>
              <th colspan="2">Importation</th>
    <?php          
    break;
    case 3: ?>
              <th rowspan="3">Ravitailler</th>
              <th >Naftal</th>
    		  <?php
    break;
    case 4: ?>
    <th>Tiers</th>
    <?php
    break;
    case 5:?>
     <th>Clients</th>
    <?php
    break;
    case 6:?>
    <th colspan="2">Formulations</th>
    <?php
    break;
    case 7:?>
    <th colspan="2">Excedents</th>
    <?php
    break;
    case 8:?>
    <th rowspan="5" scope="row">Sorties</th>
              <th colspan="2">Formulations</th>
    <?php
    break;
    case 9:?>
    <th colspan="2">Ventes</th>
    <?php
    break;
    case 10:?>
              <th colspan="2">Transferts</th>
    <?php
    break;
    case 11:?>
              <th colspan="2">Consom.Intèrne</th>
    <?php
    break;
    case 12:?>
              <th colspan="2">Coul  &amp; Pertes</th>
    <?php
    break;
    case 13:?>
              <th colspan="3" scope="row">Stock Final</th>
    <?php
    }		 
     
    				  for($i=1; $i<= $nb_colonne_max; $i++) 
                {
     
               ?>   
              <td class="cellule1"><?php echo $_POST['l'.$j.'c'.$i];?></td>
            <?php 
            }
            ?>
     
                 </tr>
            <?php
            }
    		?>
          </table>
    il me reste le problème des <th> obligé de mettre un switch
    vous pouvez m'orienté pour un truc plus pratique?
    ps: Merci bcp

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    tu peux mettre tout tes intitulés de th dans un $tableau_th, que tu parcours.
    Mais autant les mettre a la main, c'est plus propre et plus lisible

    ta boucle ligne/colonne n'intervient qu'après les th.
    en gros tu auras:
    1: bloc php avec initialisation des variables etc...
    2: initialisation de l'html du tableau: <table>, toute la partie <th>
    3: boucle des lignes/colonnes qui remplissent les td
    4: fin du html tableau </table> etc..

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    je vous remercie pour votre aide gototog
    je vais laissé mes th avec le switch par ce que je peux pas faire comme vous me l'avez dit
    Citation Envoyé par gototog Voir le message
    "2: initialisation de l'html du tableau: <table>, toute la , toute la partie <th>
    3: boucle des lignes/colonnes qui remplissent les td
    la structure de mon tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <tr> 
            <th>        </th>
                      <td>   </td>
                      <td>    </td>
    </tr>

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    j'ai un autre problème je veux faire la meme chose avec des champs de saisie dans chaque cellule mais les cellules change leurs taille quand c'est fait de cette manière"avec une boucle"
    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
    <?php
     
    $nb_colonne_max= 6;
    $nb_ligne_max=13;
     
    for ($j=1;$j<=$nb_ligne_max;$j++)
    {
    ?>
        <tr>
        <?php
        for($i=1; $i<= $nb_colonne_max; $i++) 
        {
        ?>   
            <td width="69px"  max-width="69px" height="33px">
                <input width-max="30px" width="30px" type="text" name=<?php 'l'.$j.'c'.$i ?> class="l1c1">
            </td>
        <?php 
        }
        ?>
        </tr>
    <?php	
    }
    ?>

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    tu as oublié un echo dans ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input width-max="30px" width="30px" type="text" name=<?php 'l'.$j.'c'.$i ?> class="l1c1">
    à corriger par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input width-max="30px" width="30px" type="text" name=<?php echo 'l'.$j.'c'.$i ?> class="l1c1">

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    j'ai honte de ne pas avoir vu qu'il manque un echo :/
    Merci rawsrc

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 4
    Points
    4
    Par défaut comment faire pour recuperer les donnes dans ce tableau avec php ?
    Code html : 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
    <form name="form" action="test.php">
    		      <table id="matable" border="0">
        <tr>
     
            <td> <span class="style2">Choisir son Image :</span> 
              <input type="file" name="image" /></td>
            <td><p class="style1">Choisir le texte :</p>
              <p>          
                    <textarea name="texte" id="texte" cols="45" rows="5"></textarea>
                </p></td>
        </tr>
    </table>
     
     
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>&nbsp;</p>
                  <p>
                    <label>
                    <input type="submit" name="button" id="button" value="Envoyer">
                    </label>
                    <label>
                    <input type="reset" name="button2" id="button2" value="Annuler">
                    </label>
                  </p>
    		    </form>

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    @selim07

    Merci d'ouvrir une NOUVELLE discussion.

    Et ta question concerne simplement la récupération des champs d'un formulaire :

    • "formulaire PHP".



  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    non c pas juste ca ya un boutton avec un lien a une fonction javascript addrow qui ajoute une ligne a la fin
    donc pour recuperer je sais pas combien de lignes va ajouter l'utilisateur tu comprends ??

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/05/2009, 09h38
  2. Réponses: 9
    Dernier message: 04/04/2007, 11h16
  3. Récupérer des données sur une page HTML
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/11/2005, 17h22
  4. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 19h18

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