Aide pour php repetition du bouton form
                    
        
     
             
                    yusukessj
    
        
    
                    Messages postés
            
                
     
             
            297
        
            
                                    Statut
            Membre
                    
                -
                                     
yusukessj Messages postés 297 Statut Membre -
        yusukessj Messages postés 297 Statut Membre -
        Bonjour, je suis bloqué dans mon script php 
voila, je veux qu'un enseignant accède à la base de donnée et enregistre les note de ses élève
j'ai pu faire le script pour qu'il regarde ses élève, pour enregistrer les notes j'ai fait cela :
$result = mysql_query( "select nom, tab_etudiant.id from tab_etudiant where specialite= '$hiddenid'" );
while ($donnees = mysql_fetch_array($result))
{
echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
echo "<input type=\"text\" name=\"nota\" >";
echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";
echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";
}
et la page cible mo_phage c'est :
$hiddenid = $_POST['hiddenid_eleve'];
$nota = mysql_real_escape_string(htmlspecialchars($_POST['nota'])); // De même pour le message
$query ="UPDATE tab_etudiant SET note_etud= '$nota' WHERE id = '" . $hiddenid . "'";
mysql_query($query) ;
echo "merci de taper les note de l etudiant";
le problème c'est qu'il m'affiche cela
http://94.img.v4.skyrock.net/94f/hachine/pics/2037175601_1.jpg
et moi je veux qu'il affiche cela
http://94.img.v4.skyrock.net/94f/hachine/pics/2037177251_1.jpg
                
            
                
    
    
    
        voila, je veux qu'un enseignant accède à la base de donnée et enregistre les note de ses élève
j'ai pu faire le script pour qu'il regarde ses élève, pour enregistrer les notes j'ai fait cela :
$result = mysql_query( "select nom, tab_etudiant.id from tab_etudiant where specialite= '$hiddenid'" );
while ($donnees = mysql_fetch_array($result))
{
echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
echo "<input type=\"text\" name=\"nota\" >";
echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";
echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";
}
et la page cible mo_phage c'est :
$hiddenid = $_POST['hiddenid_eleve'];
$nota = mysql_real_escape_string(htmlspecialchars($_POST['nota'])); // De même pour le message
$query ="UPDATE tab_etudiant SET note_etud= '$nota' WHERE id = '" . $hiddenid . "'";
mysql_query($query) ;
echo "merci de taper les note de l etudiant";
le problème c'est qu'il m'affiche cela
http://94.img.v4.skyrock.net/94f/hachine/pics/2037175601_1.jpg
et moi je veux qu'il affiche cela
http://94.img.v4.skyrock.net/94f/hachine/pics/2037177251_1.jpg
        A voir également:         
- Aide pour php repetition du bouton form
 - Diagnostic bouton photo - Accueil - Outils
 - Easy php - Télécharger - Divers Web & Internet
 - Bouton home clavier ✓ - Forum PC portable
 - Bouton shift pc - Forum Jeux vidéo
 - Bouton on/off comment savoir - Forum Word
 
12 réponses
                        
                    while ($donnees = mysql_fetch_array($result))
{
echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
echo "<input type=\"text\" name=\"nota\" >";
echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";
}
echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";
    
                {
echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
echo "<input type=\"text\" name=\"nota\" >";
echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";
}
echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";
                        
                    je vous remerci pour votre aide, mais comme ça ca n'enregistre que le dernier élève :  la dernière note,
les autres ne s'enregistre pas
    
                les autres ne s'enregistre pas
                        
                    Il y a une grosse faute ici :
tu dois mettre
echo "<form action=\"mo_phage.php\" method=\"post\" >";
et
echo "</form>";
hors du while sinon a chaque nouvelle donnée, tu as un nouveau formulaire.
    
                while ($donnees = mysql_fetch_array($result))
{
echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
echo "<input type=\"text\" name=\"nota\" >";
echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";
echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";
} 
tu dois mettre
echo "<form action=\"mo_phage.php\" method=\"post\" >";
et
echo "</form>";
hors du while sinon a chaque nouvelle donnée, tu as un nouveau formulaire.
                        
                    oui, quand je fais ça j'ai un seul bouton, mais il n'enregistre qu'un seul enregistrement, le dernier c'est tout !!
                
                
    
                Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
                        
                    Ha oui, j'avais mal compris. je suis bête ^^"
en fait Si j'ai bien compris, il y a un certain nombre de ligne dans la table a modifier en même temps.
Je réfléchi vite mais je pense qu'il faut mettre une boucle dans la page mo_phage.php pour faire passer tous les élèves 1 par 1.
pour éviter les confusion pour les $_POST, il faut alors incrémentée un nombre pour modifier le nom des champ a chaque entrée.
Voila le code di moi si sa marche.
page 1 :
page mo_phage.php
                
                
    
                en fait Si j'ai bien compris, il y a un certain nombre de ligne dans la table a modifier en même temps.
Je réfléchi vite mais je pense qu'il faut mettre une boucle dans la page mo_phage.php pour faire passer tous les élèves 1 par 1.
pour éviter les confusion pour les $_POST, il faut alors incrémentée un nombre pour modifier le nom des champ a chaque entrée.
Voila le code di moi si sa marche.
page 1 :
<?php
$result = mysql_query( "select nom, tab_etudiant.id from tab_etudiant where specialite= '$hiddenid'" );
$i = 1;//on crée la variable $i
echo '<form action="mo_phage.php" method="post" >';
while ($donnees = mysql_fetch_array($result))
{
	echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
	
	echo '<input type="text" name="nota_'.$i.'" >';
	
	echo '<input type="hidden" value='.$donnees['id'].' name="hiddenid_eleve_'.$i.'">';
$i++;//on incrémente la variable.
}
echo '<input type="hidden" value='.$i.' name="i">'; // on enregistre le dernier $i.
echo '<input type="submit" name="Submit" value="VALIDER">';
echo '</form>';
?>
page mo_phage.php
<?php
for ($i = 1; $i >= $_POST['i']; $i++)
{
	if (!empty($_POST['hiddenid_eleve'.$i]))
	{
	$hiddenid = $_POST['hiddenid_eleve'.$i];
	
	$nota = mysql_real_escape_string(htmlspecialchars($_POST['nota'.$i]));
	
	mysql_query("UPDATE tab_etudiant SET note_etud='$nota' WHERE id='$hiddenid'") ;
	}
	else
	{
		die ('merci de taper les note de l etudiant');
	}
}
?>
                        
                    Bon j'aime pas laisser un plan pas fini alors voilà ce que je te propose :
Faire un formulaire pour modifier la notes des élèves 1 à 1
donc 1 seul formulaire par page avec seulement 1 élève par formulaire.
faire simple en quelque sorte :p
    
                Faire un formulaire pour modifier la notes des élèves 1 à 1
donc 1 seul formulaire par page avec seulement 1 élève par formulaire.
faire simple en quelque sorte :p
                        
                    J'ai une bonne nouvelle.
Mon frère m'a un peu expliqué car je devais faire un panier virtuel.
voici mon code.
Dedans j'utilise des SESSION mais le principe est le même, tu devras un peu adapté le code.
C'est une partie du code mais normalement tu a tout ce qu'il faut.
    
                Mon frère m'a un peu expliqué car je devais faire un panier virtuel.
voici mon code.
Dedans j'utilise des SESSION mais le principe est le même, tu devras un peu adapté le code.
//Ajout des données dans la table eyself_achat
		$login = $_SESSION['login'];
		
		$n = 1;
		for ($numLine = 1; isset($_POST['nombre_produit'.$numLine]); $numLine++)
		{
			$id_produit = $_SESSION['id_produit'.$n];
			$nom_produit = $_SESSION['nom_produit'.$n];
			$prix = $_SESSION['prix'.$n];
			$nbr_achat = $_SESSION['nbr_achat'.$n];
			$taille = $_SESSION['taille'.$n];
			$couleur = $_SESSION['couleur'.$n];
			
			$result = mysql_query("INSERT INTO eyself_achat (login,nom_produit,taille,couleur,nombre_produit,prix,date) VALUES('$login', '$nom_produit', '$taille', '$couleur', '$nbr_achat', '$prix', NOW())");
			
			$n++;
		}
		echo 'Votre commande a bien été enregistré.';
		
$n = 1;
	$numLine = 1;
	$prixtot = 0;
	
	if (isset($_SESSION['compteur'.$n]))
	{
		//Pagination
		include ('../includes/pagination.php');
		?>
		<form method="POST" action="">
		<table>
			<tr>
				<th>Nom</th>
				<th>Prix unitaire</th>
				<th>Quantité</th>
				<th>Prix total</th>
				<th>Supprimer</th>
			</tr>
		<?php
		while (isset($_SESSION['compteur'.$n]))
		{
		?>
			<tr>
				<td><?php echo $_SESSION['nom_produit'.$n];?></td>
				<td><?php echo $_SESSION['prix'.$n].' €';?></td>
				<td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit' . $numLine . '" value="'.$_SESSION['nbr_achat'.$n].'" />';?></td>
				<td><?php echo $_SESSION['prix'.$n] * $_SESSION['nbr_achat'.$n].' €';?></td>
				<td><a href="?page=commander&mod=<?php echo $_SESSION['id_produit'.$n];?>"></a></td>
			</tr>
		<?php
		$prix = $_SESSION['prix'.$n] * $_SESSION['nbr_achat'.$n];
		$prixtot = $prix + $prixtot;
		
		//Incrémentation
		$numLine++;
		$n++;
		}
		?>
			<tr>
				<td></td>
				<td><input type="submit" name="recalculer" value="recalculer" /></td>
				<td>Total :</td>
				<td><?php echo $prixtot.' €';?></td>
			<tr>
			<tr>
				<td colspan="5"><input type="submit" name="valider" value="valider" /></td>
			</tr>
		</table>
		</form>
	<?php
	}
	else
	{
		echo '<h2 style="text-align:center;">Votre panier est vide.</h2>';
	}
C'est une partie du code mais normalement tu a tout ce qu'il faut.