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 :

methode pour passer variable avec POST [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Par défaut methode pour passer variable avec POST
    Bonjour à tous
    La question à l'air stupide, mais je vous explique :
    voici le code pour modifier des entrées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sql = 'SELECT * FROM fiche    ORDER BY adherent ASC';
     $result = $bdd->query($sql);
    $resultat=$result->fetchAll(PDO::FETCH_ASSOC); 
    foreach ($resultat as $key  =>  $row) {
        $id=  $row['id'];
    echo '<div class="lgn">
    <span class="cell1"><input type="text" name="adherent['.$id.']" value="'.$row['adherent'].'" >	</span>
    <span class="cell1"><input type="text" name="prenom['.$id.']"   value="'.$row['prenom'] .'" ></span>
     
     <input type="submit" title="Enregitrer la modification" name="btnact[?]" >
    </div> ';
    }
    Cela s'affiche par lignes , au bout de chaque ligne un bouton [ modif ],
    mais quand je réceptionne j'ai fatalement les dernières variables affichées,
    parce que dans mon "bouton" je ne sais pas comment envoyer une info [?],
    comme dans un $_GET...je l'ai fait avec [$id] mais je ne vois pas comment le récupérer !
    le code généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div >
    <span class="cell1"><input type="text" name="adherent[3]" value="robert" >	</span>
    <span class="cell1"><input type="text" name="prenom[3]" value="jean" ></span>
     
     <input type="submit" title="Enregitrer la modification" name="btnact[]" value="">
     </div>
    JE pense être sur la mauvaise voie...j'attends vos lumières...merci d'avance !
    .
    .

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

    la question est : "où est(sont) la(les) balise(s) <form> ?"
    • une seule autour de l'ensemble du tableau ?
    • une pour chaque ligne ?


    Question subsidiaire : "tu veux pouvoir traiter plusieurs lignes en même temps, ou une seule ligne à la fois ?"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Par défaut
    hello
    un seul FORM !
    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
     
      <form action="edition.php" method="post">
                              <?php	 $sql = 'SELECT * FROM fiche    ORDER BY adherent ASC';
                                        $result = $bdd->query($sql);
                                        $resultat=$result->fetchAll(PDO::FETCH_ASSOC); 
                                        foreach ($resultat as $key  =>  $row) {
                    $id=  $row['id'];
     
                                       echo '  
                                      <div class="lgn">
                                      
    				   <span class="cell1"><input type="text" name="adherent['.$id.']" 		value="'.$row['adherent'].'" >	</span>
                                      <span class="cell1"><input type="text" name="prenom['.$id.']"  		value="'.$row['prenom'] .'" ></span>
                                      <span class="cell2"><input type="text" name="naissance['.$id.']"   	value="'.$date.'" ></span>
                                      <span class="cell1"><input type="text" name="parent['.$id.']"  		value="'.$row['parent'].'" ></span>
                                      <span class="cell3"><input type="text" name="heure['.$id.']"  		value="'.$row['heure'].'" ></span>
                                      <span class="cell3"><input type="text" name="cotis['.$id.']"  		value="'.$row['cotis'].'" ></span>
                                      <span class="cell2"><input type="text" name="paiement['.$id.']"  	value="'.$row['paiement'].'" ></span>
                                      <span class="cell3"><input type="text" name="sept['.$id.']"  		value="'.$row['sept'].'" ></span>
                                      <span class="cell3"><input type="text" name="oct['.$id.']"   		value="'.$row['oct'].'" ></span>
                                      <span class="cell3"><input type="text" name="nov['.$id.']"  			value="'.$row['nov'].'" ></span>
                                      <span class="cell3"><input type="text" name="dece['.$id.']"  		value="'.$row['dece'].'" ></span>
                                      <span class="cell3"><input type="text" name="janv['.$id.']"   		value="'.$row['janv'].'" ></span>
                                      <span class="cell3"><input type="text" name="fev['.$id.']"   		value="'.$row['fev'].'" ></span>
                                      <span class="cell3"><input type="text" name="mars['.$id.']"   		value="'.$row['mars'].'" ></span>
                                      <span class="cell3"><input type="text" name="avril['.$id.']" 		value="'.$row['avril'].'" ></span>
                                      <span class="cell3"><input type="text" name="mai['.$id.']"  		value="'.$row['mai'].'" ></span>
                                      <span class="cell3"><input type="text" name="juin['.$id.']" 			value="'.$row['juin'].'" ></span>
                                      <input type="hidden" name="id['.$id.']" value="'.$id.'"  >
    					  </div><!--lgn-->
                                      <input type="submit" title="Enregitrer la modification" class="cell5 iconsave" name="btnact[]" value="">
    ?>
    </form>

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bon.

    Alors un seul bouton submit à la fin suffirait, mais admettons (plusieurs ne posent pas problème).
    Au clic sur un des bouton, TOUT est envoyé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                     <input type="hidden" name="id['.$id.']" value="'.$id.'"  >
    Cette ligne n'est pas forcément utile (voir la suite des explications) :

    Tu récupères des array de valeurs :
    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
    <?php
    $adherent_array = (isset($_POST['adherent']))? $_POST['adherent'] : array();
    $prenom_array = (isset($_POST['prenom']))? $_POST['prenom'] : array();
    $naissance_array = (isset($_POST['naissance']))? $_POST['naissance'] : array();
    // (....................)
     
     
    // traitement
    foreach ($adherent_array as $key => $val)
    {
       // $key vaut ici... $id de la ligne !! (tel que tu l'as écrit dans le formulaire : name="adherent['.$id.']" )
    // donc :
       $id = $key;
       $adherent = $adherent_array[$key];
       $prenom = $prenom_array[$key];
       $naissance = $naissance_array[$key];
    // (....................)
       // on peut donc traiter ligne par ligne (gestion d'erreur, enregistrment,...)
    // (....................)
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Par défaut
    Pas tout compris là !

    Comment puis je distinguer les champs modifié seulement ?
    Puisque ça me renvois tout sans distinction, j'ai receptionner avec un echo :
    diez
    jean marc
    00/00/00
    dimitri
    jean marc
    02/05/90
    durand
    celine
    02/11/15
    eee

    00/00/00
    Voici un visuel du tableau :
    Nom : ex tablo.JPG
Affichages : 280
Taille : 57,1 Ko

  6. #6
    Invité
    Invité(e)
    Par défaut
    Donc... ?
    Où est le problème ?

    Il s'agit de faire des UPDATE.
    Comme les champs non-modifiés contiennent les anciennes valeurs, l'UPDATE les conservera.
    Seuls les champs effectivement modifiées le seront.

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

Discussions similaires

  1. C++/CX : meilleur methode pour passer un vecteur
    Par yan dans le forum Visual C++
    Réponses: 7
    Dernier message: 07/11/2013, 17h30
  2. Réponses: 10
    Dernier message: 27/08/2008, 21h00
  3. Variable avec POST et GET
    Par aliwassem dans le forum Langage
    Réponses: 10
    Dernier message: 09/04/2008, 12h44
  4. [Conception] Passage De Variable Avec Post Via Un Script Php + Redirection
    Par british_toons dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/09/2006, 16h57
  5. Envoi de variables avec POST
    Par oops! dans le forum Flash
    Réponses: 5
    Dernier message: 06/08/2006, 21h14

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