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 :

Plusieurs boutons submit sur la meme page


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 28
    Points
    28
    Par défaut Plusieurs boutons submit sur la meme page
    Bonjour,

    voila je realise un site pour mon ecole et la je dois creer une page pour les affectations des options. Donc sur ma page il y a un tableau avec une colonne pour le nom prenom (que je recupere de ma base de données) une collone pour le 1er voeux, une pour le 2eme et une pour le 3eme voeux (aussi recuperer de la base de données) puis une colonne pour realiser les affectations avec un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='texte' name='$nom'>
    et un bouton submit afin d'affecter l'option pour chaque eleve (info que je dois ensuite ecrire dans ma base de données). et enfin une derniere colonne qui affiche le voeux affecter.

    voila mon probleme quand je veux affecter une option a un eleve celle-ci s'affecte a tous les eleves.

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
     
    	<body>
    			<h2>AFFECTATIONS 1A MRI</h2><br/>
    			<center>Mobilité = Temps réel et Mobilité<br>Multimédia = Ingénierie du multimédia <br>Com. élec. = Commerce électronique<br><br></center>
     
    			<table>
     
       <thead> <!-- En-tête du tableau -->
           <tr>
               <th>Nom</th>
               <th>Prénom</th>
               <th>Voeux 1</th>
    		   <th>Voeux 2</th>
    		   <th>Voeux 3</th>
    		   <th>Affecter<br>voeux n° :</th>
               <th>Voeux affecté</th>
           </tr>
       </thead>
     
       <tfoot> <!-- Pied de tableau -->
           <tr>
               <th>Nom</th>
               <th>Prénom</th>
               <th>Voeux 1</th>
    		   <th>Voeux 2</th>
    		   <th>Voeux 3</th>
    		   <th>Affectation</th>
               <th>Voeux affecté</th>
           </tr>
       </tfoot>
     
       <tbody> <!-- Corps du tableau -->
    			<?php
    			mysql_connect("localhost", "root", "");
    			mysql_select_db("choix_option");
    			$reponse=mysql_query("SELECT nom, prenom, voeux1, voeux2, voeux3 FROM voeux_eleves WHERE classe='1' ORDER BY nom");
    			while ($eleve = mysql_fetch_array($reponse))
    			{
    				$nom=$eleve['nom'];
     
    				if($eleve['voeux1']==1)
    				   $eleve['voeux1']= "Mobilité";
    				if($eleve['voeux1']==2)
    				   $eleve['voeux1']= "Multimédia";
    				if($eleve['voeux1']==3)
    				   $eleve['voeux1']= "Com. élec.";
    				if($eleve['voeux2']==1)
    				   $eleve['voeux2']= "Mobilité";
    				if($eleve['voeux2']==2)
    				   $eleve['voeux2']= "Multimédia";
    				if($eleve['voeux2']==3)
    				   $eleve['voeux2']= "Com. élec.";
    				if($eleve['voeux3']==1)
    				   $eleve['voeux3']= "Mobilité";
    				if($eleve['voeux3']==2)
    				   $eleve['voeux3']= "Multimédia";
    				if($eleve['voeux3']==3)
    				   $eleve['voeux3']= "Com. élec.";
     
    				$donnees=mysql_query("SELECT affectation FROM affectation WHERE nom='$nom' AND classe='1'");
    				$affec = mysql_fetch_array($donnees);
    				if($affec['affectation']==1)
    				   $affec['affectation']= "Mobilité";
    				if($affec['affectation']==2)
    				   $affec['affectation']= "Multimédia";
    				if($affec['affectation']==3)
    				   $affec['affectation']= "Com. élec.";
     
    				echo "<tr>";
    				echo "<td>";
    				echo strtoupper($eleve['nom']);
    				echo "</td>";
    				echo "<td>";
    				echo strtoupper($eleve['prenom']);
    				echo "</td>";
    				echo "<td>";
    				echo $eleve['voeux1'];
    				echo "</td>";
    				echo "<td>";
    				echo $eleve['voeux2'];
    				echo "<td>";
    				echo $eleve['voeux3'];
    				echo "</td>";
    				echo "<td>";
    				?><form method="post" action="aspect_prof.php?page=affectation_1ASTI"><input type='texte' name='$nom' style='width:40px;height:20px;'><center><input type="submit" value="Valider" /></center></form><?php
    				echo "</td>";
    				echo "<td>";
    				$affec=$_POST['$nom'];
    				echo $affec;
    				mysql_query("UPDATE affectation SET affectation='$affec' WHERE classe='1' AND nom='$nom'");
    				echo "</td>";
    				echo "</tr>";
     
    			}
    			?>
       </tbody>
    </table>
     
     
     
    <a href="aspect_prof.php?page=affectation"><h4>retour au choix de filière</h4></a>
    			<?php mysql_close(); ?>
     
    	</body>
    </html>
    Merci

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est normal puisque tu as mis l'update dans ta boucle qui parcours la table.

    Il faut que tu sortes l'update de la boucle, et que tu le places plus haut dans le script avec une condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (isset($_POST['eleve']) && isset($_POST['nom'])) {
      $sql = "UPDATE .....
    Ton <form> doit par contre contenir le nom de l'eleve auquel tu veux appliquer l'update.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ton <form> doit par contre contenir le nom de l'eleve auquel tu veux appliquer l'update.
    et comment je fais cela ?

    de plus si je met l'update en dehors de la boucle et avant, les variables $affec, $nom ne sont pas defini.
    merci d'avance

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Quand je parle de deplacer l'update, je ne parle evidemment pas de deplacer la seule ligne de requete mais tout ce qui va avec.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    peut tu me montrer l'aspect du code a peu pres parce que je ne comprends pas trop !!!
    merci d avance

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    j'ai reussi a gerer les differents input par le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo "<td>";
    echo "<form name='form".$i."' action='aspect_prof.php?page=affectation_1ASTI' method='post'>";
    echo "<input type=\"hidden\" value=\"".$i."\" name=\"mon_champ_cache\">";
    echo "<input type=\"text\" name=\"".$i."\">";
    echo "<button type='submit' action='aspect_prof.php?page=affectation_1ASTI' name=\"bouton\" value=".$i."' style='width:70px;height:30px;'>Valider</button>";
    echo "</button>";
    echo "</form>";
    echo "</td>";
    j'arrive a recuperer la valeur de chaque POST. mais un probleme persiste, en effet je dois recuperer le nom de la personne a qui j'ai affecter l'option afin de pouvoir mettre a jour ma base de données mais impossible de savoir comment faire. merci d'avance

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

Discussions similaires

  1. Insertion de deux boutons facebook sur la meme page
    Par renkev dans le forum Facebook
    Réponses: 8
    Dernier message: 25/07/2011, 16h34
  2. Plusieurs window.onload sur la meme page
    Par saperlipopeye dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/02/2010, 10h33
  3. Plusieurs Listes sur la meme page Erreur
    Par PseT34 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 03/01/2008, 17h09
  4. prb avec la touche entrée et plusieurs submit dans la meme page
    Par nsdcrew dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/08/2007, 10h30
  5. plusieurs boutons submit sur un formulaire
    Par clement42 dans le forum Struts 1
    Réponses: 1
    Dernier message: 12/05/2006, 10h42

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