Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2007, 11h33   #1
Invité régulier
 
Inscription : juillet 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 57
Points : 7
Points : 7
Par défaut Formulaire, éléments multiples et mise à jour

Bonjour à tous,

voilà j'ai un léger probléme, j'ai un formulaire qui se génére en fonction du nombre de champs dans la base de données (avec un while), jusque là ok ^^

mais pour updater ma base de données je bloque, j'ai trouvé comment ajouter dans chaque champs mes données, mais j'ai un probléme, il insére que les derniers données entré dans le formulaire, ce qui est logique en fonction du code mais je vois pas trop comment faire...

voici le formulaire

Code :
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
<form action="horaire_nm.php" method="post">
 
<table>
<?php
$retour = mysql_query('SELECT * FROM h_horaire WHERE pid = '.$_POST['hid'].'');
	while ($donnees = mysql_fetch_array($retour)) 
	{
?>
	<tr>
    	<td>
<select name="site">
	<option value="<?php echo $donnees['site']; ?>" selected="selected">>> <?php echo $donnees['site']; ?></option>
	<option value="CHR"> CHR </option>
    <option value="Refuge"> Refuge </option>
</select>
		</td>
        <td>
<select name="jour">
	<option value="<?php echo $donnees['jour']; ?>" selected="selected">>> <?php echo $donnees['jour']; ?></option>
	<option value="Lundi"> 		Lundi </option>
	<option value="Mardi"> 		Mardi </option>
	<option value="Mercredi"> 	Mercredi </option>
	<option value="Jeudi"> 		Jeudi </option>
	<option value="Vendredi"> 	Vendredi </option>
	<option value="Samedi"> 	Samedi </option>
	<option value="Dimanche"> 	Dimanche </option>
</select>
		</td>
	</tr>
    <tr>
    	<td>
Heure de d&eacute;but
		</td>
        <td>
<input type="text" name="hd" value="<?php echo $donnees['hd']; ?>"/>
		</td>
    </tr>
    <tr>
    	<td>
Heure de fin 
		</td>
    	<td>
<input type="text" name="hf" value="<?php echo $donnees['hf']; ?>" />
	   </td>
     </tr>
<?php } ?>
     <tr>
     	<td colspan="2">
<input type="hidden" name="pid" value="<?php echo $_POST['hid'];?>" />
<input type="submit" value="finaliser" />
		</td>
     </tr>
     </table>
</form>
le php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 if ($_POST['site'])
    {
		$retour = mysql_query('SELECT id FROM h_horaire WHERE pid = '.$_POST['pid'].'');
 
		while ($donnees = mysql_fetch_array($retour)) 
		{
		$site		= stripslashes($_POST['site']);
		$jour		= stripslashes($_POST['jour']);
		$hd			= stripslashes($_POST['hd']);
		$hf			= stripslashes($_POST['hf']);
		// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query("UPDATE h_horaire SET site='" . $site . "' , jour='".$jour."' , hd='".$hd."', hf='".$hf."' WHERE id='".$donnees['id']."'");
 
 
}
    }
acppca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 12h01   #2
Membre actif
 
Homme Florian
Chef de projet NTIC
Inscription : novembre 2004
Messages : 205
Détails du profil
Informations personnelles :
Nom : Homme Florian
Âge : 26
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 205
Points : 159
Points : 159
Fouilli tout ca... Tu devrais eviter de faire autant d'appels a php.
Sinon, de ce que j'ai pu comprendre, ce comportement est normal car tous tes inputs ont le meme nom, donc quoiqu'il arrive seul le dernier sera gere, ses valeurs ecrasant les precedentes.

Ajoute "[]" au nom de tes inputs, ca devrait pouvoir t'aider... et considere $_POST['nom'] comme un tableau suite a ca

(<input type="text" name="text[]"> par exemple)
NaeiKinDus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 12h14   #3
Invité régulier
 
Inscription : juillet 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 57
Points : 7
Points : 7
j'y avais pensé en ajoutant par example l'id de chaque donné, mais mon probléme et comment les ajouter automatiquement?
acppca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 12h24   #4
Membre actif
 
Homme Florian
Chef de projet NTIC
Inscription : novembre 2004
Messages : 205
Détails du profil
Informations personnelles :
Nom : Homme Florian
Âge : 26
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 205
Points : 159
Points : 159
Pas besoin de l'id, utilise les crochets !

Pour l'input exemple que je t'ai donne, tu peux y acceder simplement avec une boucle !
NaeiKinDus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 12h51   #5
Invité régulier
 
Inscription : juillet 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 57
Points : 7
Points : 7
re,

je sais je suis chiant ^^

fin j'ai testé plusieur boucle avec les []
tout en les considerant comme un tableau et je vois tjs pas...
acppca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 14h06   #6
Invité régulier
 
Inscription : juillet 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 57
Points : 7
Points : 7
solution trouvé,
merci
acppca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 14h11   #7
Membre actif
 
Homme Florian
Chef de projet NTIC
Inscription : novembre 2004
Messages : 205
Détails du profil
Informations personnelles :
Nom : Homme Florian
Âge : 26
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 205
Points : 159
Points : 159
Un exemple un peu plus precis...

Un formulaire:
Code :
1
2
3
4
5
6
7
 
<form action="" method="post">
  <input type="text" name="text[]" />
  <input type="text" name="text[]" />
  <input type="text" name="text[]" />
  <input type="submit" />
</form>
Un traitement PHP:
Code :
1
2
3
 
foreach ($_POST['text'] as $value)
  echo "Valeur: {$value}";
La, tu verras affiche a l'ecran les valeurs des trois inputs soumis via le formulaire. Adopte le meme system pour ton propre formulaire et modifie ton traitement PHP pour le gerer comme tel
NaeiKinDus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h42.


 
 
 
 
Partenaires

Hébergement Web