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

PHP & Base de données Discussion :

Récupération de valeurs d'un tableau


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut Récupération de valeurs d'un tableau
    Bonjour,
    j'ai fait l'affichage de données dans un tableau avec tant que...
    jusque la pas de souci, sur chaque ligne du tableau j'ai un submit et un bouton hidden (qui sont compris dans la boucle), je récupère la valeur du hidden en POST, le problème c'est que la valeur du hidden est toujours celui de la dernière ligne du tableau
    Voici un ptit morceau du code
    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
     
    ....
    if(isset($_POST['pay'])){
    		echo "ok".$_POST['id'];
    		}
    .........
    ........
    while($sit=mysql_fetch_assoc($res)){
    	$id=$sit['numM'];
    	echo "<input type=\"hidden\" name=\"id\" value=\"".$id."\">"; 
            echo "\n\t<tr>";
    	.....
            ......
    	echo "\n\t\t<td><input type=\"submit\" name=\"pay\" value=\"payé\" /></td>";
    	echo "\n\t</tr>";
     
    }
    .....

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 384
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 384
    Points : 15 736
    Points
    15 736
    Par défaut
    pour ça tu dois mettre un formulaire par bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    while ($sit = mysql_fetch_assoc($res)) {
        ?>
     
            <tr>
                <td>
                    <form action="..." method="post">
                        <input type="hidden" name="id" value="<?php echo $sit['numM'];?>"/>
                        <input type="submit" name="pay" value="payé"/>
                    </form>
                </td>
            </tr>
     
        <?php
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    Il faut aussi différencier les formulaires en leur donnant un nom distinct :

    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
    <table>
    <?php
    $formid = 1;
    while ($sit = mysql_fetch_assoc($res)) {
        ?> 
       <tr>
          <td>
          <form name="<?php echo 'form'.$formid; ?>" action="..." method="post">
             <input type="hidden" name="id" value="<?php echo $sit['numM'];?>"/>
             <input type="submit" name="pay" value="payé"/>
          </form>
          </td>
       </tr>
    <?php
    $formid++;
    }
    ?>
    </table>

  4. #4
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    Merci !!
    alors en général pour chaque bouton il faut un form ? si et seulement si le bouton ne devrait renvoyer qu'une valeur?

  5. #5
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    j'ai remarqué que vous avez donné pour chaque form un name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name="<?php echo 'form'.$formid; ?>" action="..." method="post">
    donc c'est normal que le Update ci-dessous ne fonctionne pas car il manque quelquechose name du form?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    if(isset($_POST['pay'])){
    		// exécuter la requête de modification
    			$sqlU="UPDATE membre SET ";
    			$sqlU.="situation='PAYEE'";
    			$sqlU.="WHERE numM='".$_POST['id']."\'";
    			mysql_query($sqlU);
    			header("Location:situation.php");
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    Après verification, il n'est pas utile de nommer chaque formulaire ...

    Un petit exemple qui marche :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <title>test</title>
    </head>
    <body>
    <table>
    <?php
    for ($i = 1;$i<=10; $i++) {
    ?> 
       <tr>
       <td>
          <form method="post" action="">
             <input type="hidden" name="id" value="<?php echo $i;?>"/>
             <input type="submit" name="pay" value="payé"/>
          </form>
       </td>
       </tr>
    <?php
    }
    ?>
    </table>
    <?php
    // traitement
    if(isset($_POST['pay'])){
    	// afficher l ID :
    	echo 'ID est : '.$_POST['id'];
    }
    ?>
    </body>
    </html>
    --> affiche 10 boutons "payé", et en cliquant dessus, on recupere bien l'ID.

    Donc, ca devrait fonctionner :
    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
    <table>
    <?php
    $formid = 1;
    while ($sit = mysql_fetch_assoc($res)) {
    ?> 
       <tr>
          <td>
          <form method="post"> action="..."
             <input type="hidden" name="id" value="<?php echo $sit['numM'];?>"/>
             <input type="submit" name="pay" value="payé"/>
          </form>
          </td>
       </tr>
    <?php
    $formid++;
    }
    ?>
    </table>
    Et recuperation de l'ID apres avoir cliqué sur un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_POST['pay'])){
    	// exécuter la requête de modification
    	$sqlU = "UPDATE membre SET ";
    	$sqlU .= "situation = 'PAYEE' ";
    	$sqlU .= "WHERE numM = " . $_POST['id'];
    	mysql_query($sqlU);
    	header("Location:situation.php");
    }
    Tu avais simplement une erreur sur la ligne :
    $sqlU.="WHERE numM='".$_POST['id']."\'";
    (comme c'est un numerique ---> pas de ' ' !) :
    $sqlU.="WHERE numM = " . $_POST['id'];

    Il manquait aussi un espace entre 'PAYEE' et WHERE :
    ton code ecrivait ($sqlU) :
    UPDATE membre SET situation='PAYEE'WHERE numM='123'
    au lieu de :
    UPDATE membre SET situation = 'PAYEE' WHERE numM = 123
    Dernière modification par Invité ; 18/03/2009 à 13h07.

  7. #7
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    merci !

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/12/2008, 09h12
  2. Réponses: 8
    Dernier message: 20/04/2007, 15h18
  3. Réponses: 4
    Dernier message: 20/03/2007, 19h28
  4. Réponses: 5
    Dernier message: 14/02/2006, 18h52
  5. Récupération de valeurs d'un tableau
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 25/03/2004, 10h59

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