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 16/04/2007, 11h48   #1
Futur Membre du Club
 
Inscription : mars 2007
Messages : 72
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : mars 2007
Messages : 72
Points : 15
Points : 15
Par défaut Boucle for() et formulaire

Bonjour a tous !
J'ai crée un tableau dans lequel je mets des fiches de contacts.
A la fin de chaque ligne de mon tableau, j'ai mis un bouton modifier, et un bouton supprimer qui chacun me redirige vers une page différente.

Mon problème est que quelque soit le bouton modifier surlequel j'appui, il me renvoie toujours les memes informations
Je pense que cela vient du fait que je n'ai pas bien placé ma balise <form name='modif_fiche' method='post' action='' onsubmit='return testsubmit()'>
Je teste toujours, mais si vous pouviez m'aidez, ca serait gentil

Merci

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
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
	$connect = ldap_connect($ldap_host, $ldap_port)
	or die( "Impossible de se connecter au serveur LDAP $ldap_host" );
	ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
	ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
 
	if ($connect){
	        $bind = ldap_bind($connect, $ldap_user, $ldap_pass)
		or die(">>Impossible de se connecter sur $ldap_host<<");
		$filtre_unix = "uid=$utilisateur";
		$restriction_unix = array( "groupeunix");
		$search_unix = ldap_search($connect,"ou=annuaire,dc=ifremer,dc=fr" ,$filtre_unix,$restriction_unix);
		$resultat_unix = ldap_get_entries($connect, $search_unix);
 
	for ($i=0; $i<$resultat_unix["count"]; $i++){
		$group_unix = $resultat_unix[$i]["groupeunix"][0];
	}
 
	// Recherche de toutes les fiches appartenant à l'utilisateur : fiche partagée et fiche personelle
	$filtre = "(|(uid=$utilisateur)(groupeunix=$group_unix))";
	$search = ldap_search($connect,"ou=carnets,dc=ifremer,dc=fr" ,$filtre);
	$resultat = ldap_get_entries($connect, $search);
 
	echo "<table border='0' valign='center' cellpadding='0' cellspacing='0' height='100%' width='100%' >
	<form name='modif_fiche' method='post' action='' onsubmit='return testsubmit()'>
	<tr><td align='center'>
	<table width='1200' bgcolor='#FFFFFF' border='2' cellpadding='2' cellspacing='2' bordercolor='#FF9900' frame='void'>
	<tr><td>
	<table width='400%' border='0' cellpadding='6' cellspacing=6'>
	<tr><td align='center' colspan='0' bgcolor='#FF9900'>
	<font color='black' face='Arial,Helvetica' size='6'>
	<b>Liste des fiches de l'utilisateur : <i>$utilisateur</i></b>
	</font>
	</td></tr>
	</table>					
 
	<table width='100%' border='1' cellpadding='1' cellspacing='1' bordercolor='#FF9900' frame='hsides'>
	<font color='black' face='Courier New, Courier, mono' size='4'>
	<tr bgcolor='#FFCC33'><th>Prénom Nom </th>
	<th>E-mail</th>
	<th>Type de fiche</th>
	<th></th>
	<th>Modifier</th>
	<th>Supprimer</th>
	</tr></font>";					
 
	for ($i=0; $i<$resultat["count"]; $i++){
	$groups_unix = $resultat[$i]["groupeunix"][0];
	$nom 		 = $resultat[$i]["sn"][0];
	$prenom		 = $resultat[$i]["givenname"][0];		
	$mail 		 = $resultat[$i]["mail"][0];
	$tel 		 = $resultat[$i]["telephonenumber"][0];
	$adresse 	 = $resultat[$i]["street"][0];
	$entreprise  = $resultat[$i]["company"][0];
	$codepostal  = $resultat[$i]["postalcode"][0];
	$ville 		 = $resultat[$i]["l"][0];
	$dn			 = $resultat[$i]["dn"];
	$cn			 = $resultat[$i]["cn"][0];	
	$uid_perso   = $resultat[$i]["uid"][0];
 
	if ($groups_unix !=""){
	$droit_fiche = "Grp";}
	else $droit_fiche = "Perso";
 
	// Caractères à afficher si les données ne sont pas renseignées
	if ($nom == ""){
		$nom = "...";}
	if ($prenom == ""){
		$prenom = "...";}
	if ($mail == ""){
		$mail = "...";}
	if ($tel == ""){
		$tel = "...";}
	if ($adresse == ""){
		$adresse = "...";}
	if ($entreprise == ""){
		$entreprise = "...";}
	if ($codepostal == ""){
		$codepostal = "...";}
	if ($ville == ""){
		$ville = "...";}
 
// Remplissage du tableau avec les informations obtenues
	if ($droit_fiche == "Perso"){
		echo "	<tr bgcolor='#FFFFCC'>";}
	else if ($droit_fiche == "Grp"){
		echo "	<tr bgcolor='#99CCCC'>";}
 
	echo "	<th>$prenom $nom </th>
		<th><a href ='mailto:$mail'>$mail</a></th>
		<th>$droit_fiche</th>
 
		<input name='prenom' value='$prenom' type='hidden'/>
		<input name='nom' value='$nom' type='hidden'/>
		<input name='mail' value='$mail' type='hidden'/>
		<input name='tel' value='$tel' type='hidden'/>			
		<input name='entreprise' value='$entreprise' type='hidden'/>
		<input name='adresse' value='$adresse' type='hidden'/>
		<input name='codepostal' value='$codepostal' type='hidden'/>
		<input name='ville' value='$ville' type='hidden'/>
		<input name='droit_fiche' value='$droit_fiche' type='hidden'/>
 
		<input name='dn' value='$dn' type='hidden'/>
		<input name='cn' value='$cn' type='hidden'/>
		<input name='uid' value='$uid_perso' type='hidden'/>
		<input name='utilisateur' value='$utilisateur' type='hidden'/>
		<input name='groupeunix' value='$groups_unix' type='hidden'/>
 
		<th></th>
		<th><input type='button' value='Modifier' onClick=gopage('modifi.php')></th>
		<th><input type='button' value='Supprimer' onClick=gopage('suppr.php')></th>
		</form></tr>";		
 
			}	
	echo "</table></table>";
 
	}			
// Fermeture de la connexion	
ldap_close($connect);
 
?>
Oli_Ifre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 14h07   #2
Futur Membre du Club
 
Inscription : mars 2007
Messages : 72
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : mars 2007
Messages : 72
Points : 15
Points : 15
J'ai compris d'ou vient mon probleme, mais je n'ai toujours pas trouvé de solution

En fait, comme je mets mon </form> dans ma boucle, cela ne me sort que les données de la dernière ou de la première ligne du tableau.

Je ne vois pas du tout comment faire
Oli_Ifre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 14h29   #3
Membre du Club
 
Inscription : mai 2004
Messages : 59
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 59
Points : 42
Points : 42
Salut!

En même temps toutes tes variables (input) ont le même nom, donc à chaque tour de ton for, tu fait une copie... Met un numéro en plus à chacun de tes input pour qu'il soit unique pour chaque passage ds ta boucle!
En espérant avoir été clair!
Le_Che est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 14h50   #4
Futur Membre du Club
 
Inscription : mars 2007
Messages : 72
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : mars 2007
Messages : 72
Points : 15
Points : 15
Hello !
Je suis pas sur de bien comprendre ce que tu m expliques

Il faut que je fasse comme ca ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<input name='prenom.[$i]' value='$prenom' type='hidden'/>
	<input name='nom.[$i]' value='$nom' type='hidden'/>
	<input name='mail.[$i]' value='$mail' type='hidden'/>
	<input name='tel.[$i]' value='$tel' type='hidden'/>			
	<input name='entreprise.[$i]' value='$entreprise' type='hidden'/>
	<input name='adresse.[$i]' value='$adresse' type='hidden'/>
	<input name='codepostal.[$i]' value='$codepostal' type='hidden'/>
	<input name='ville.[$i]' value='$ville' type='hidden'/>
	<input name='droit_fiche.[$i]' value='$droit_fiche' type='hidden'/>
 
	<input name='dn.[$i]' value='$dn' type='hidden'/>
	<input name='cn.[$i]' value='$cn' type='hidden'/>
	<input name='uid.[$i]' value='$uid_perso' type='hidden'/>
	<input name='utilisateur.[$i]' value='$utilisateur' type='hidden'/>
	<input name='groupeunix.[$i]' value='$groups_unix' type='hidden'/>
 
<th></th>
<th><input type='button' value='Modifier' onClick=gopage('modifi.php')></th>
<th><input type='button' value='Supprimer' onClick=gopage('suppr.php')></th>
	</form></tr>";
Oli_Ifre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 10h31   #5
Futur Membre du Club
 
Inscription : mars 2007
Messages : 72
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : mars 2007
Messages : 72
Points : 15
Points : 15
Je suis toujours bloqué sur ce point
Quelqu'un aurait une idée ? Ou alors peut etre une façon de contourner le problème ?
Oli_Ifre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 13h42   #6
Futur Membre du Club
 
Inscription : mars 2007
Messages : 72
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : mars 2007
Messages : 72
Points : 15
Points : 15
Re moi !!
Je voulais savoir si le fait de créer un formulaire par ligne du tableau vous semble etre une bonne idée ?
et si oui, comment on fait pour mettre ca en place ?

En fait, la création de plusieurs formulaires, j'y arrive a peu près, c'est pour récupérer les infos que je ne vois pas comment faire
Oli_Ifre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 14h48   #7
Membre habitué
 
Expert Support Applicatif
Inscription : mars 2007
Messages : 158
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Expert Support Applicatif
Secteur : Distribution

Informations forums :
Inscription : mars 2007
Messages : 158
Points : 140
Points : 140
voila ta reponse mais moi je le fais pas avec une boucle for mais bon
j'ai pas eu le courage de voir tout ton code mais je te fourni une solution que j'avais mis en place pour une ecole qui voulais ajouter des notes a ces eleves
(sujet factif d'etude)

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
 
<html>
 
<table border="2" bgcolor="" width="">
<td width="">
Num ligne
</td>
<td width="">
Nom de l'élève
</td>
 
<td width="">
Prénom de l'élève
</td>
<td width="">Selection</td>
 
<?
$ligne=0;
include("date.inc"); //parametre de connexion
$classe=$_POST['lib_classe']; //dans ma page précédente une liste déroulante me permetait de choisir la classe
$requete=" select ...."; //resquete de séléction des eleve par rapport a la classe
 
$rq1=mysql_query($requete)or die('Erreur SQL !<br>'.$rq1.'<br>'.mysql_error());;
 
while($data=mysql_fetch_row($rq1)){
 
$Nom = $data[0];
$Pren = $data[1];
 
$ligne++;
 
echo"<form action='ajnote.php' method='post'>\n";
 
echo"<tr>\n
	<td>$ligne</td>\n
	<td><input type='text' name='nom'  value='$Nom' readonly></td>\n
	<td><input type='text' name='Pren' size='20' value='$Pren' readonly></td>\n
	<td> <input type='submit' name='envoyé' value='Donner une note'</td> \n
	</tr>\n";
 
 
echo"</form>";
 
 
 
}
?>
 
</table>
</html>
</div>
</br>
enfaite tu cree ton bouton dans la derniere colonne par exemple, tu rajoute des champs hidden et le tour est jouer.

Je n'ai pas tester se code depuis longtemps donc pas sur qu'il fonctionne en meme temps mais c'est pour que tu es une idée.
Alex70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 16h01   #8
Futur Membre du Club
 
Inscription : mars 2007
Messages : 72
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : mars 2007
Messages : 72
Points : 15
Points : 15
merci d'avoir pris le temps de regarder mon pb
juste un truc qui me semble bizarre dans ton code, tu n'as pas de balise </form>

ca me semble un peu louche

je vais regarder ca et voir comment je peux utiliser ton code ^^
Oli_Ifre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 16h08   #9
Membre habitué
 
Expert Support Applicatif
Inscription : mars 2007
Messages : 158
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Expert Support Applicatif
Secteur : Distribution

Informations forums :
Inscription : mars 2007
Messages : 158
Points : 140
Points : 140
Effectivement j'avais pas vu, j'edit mon code tout de suite.

Edit :
J'ai recouper le code, enfaite pour repasser le nom et le prenom de l'eleve dans une autre page je les ai mis dans un champ text et hop.

Voila si tu veux d'autre explication...
Alex70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 16h28   #10
Futur Membre du Club
 
Inscription : mars 2007
Messages : 72
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : mars 2007
Messages : 72
Points : 15
Points : 15
Arf c'est pas tres loin d'etre bon je pense
Maintenant mon seul problème,c'est de réussir à modifier la valeur de action='' dans mon form!

Voila mon code :
Code :
1
2
3
4
5
6
7
8
9
for (...){
...
echo "<form name='modif_fiche' method='post' action=''>";
echo "<th>$prenom $nom </th>
	<th><a href ='mailto:$mail'>$mail</a></th>
 
<th><input type='image' src='./img/modifier.gif' value='Modifier' onClick=gopage('modifi.php')></th>
<th><input type='image' src='./img/supprimer.gif'  value='Supprimer' onClick=gopage('suppr.php')></th>";	
echo "</form>";}
Si je mets le nom de la page en *.php dans action, ca marche bien, mais comme j'ai deux redirections possibles, il me reste cela à gérer

je dois pas etre tres clair je crois
merci en tout cas, ca progresse
Oli_Ifre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 16h31   #11
Membre habitué
 
Expert Support Applicatif
Inscription : mars 2007
Messages : 158
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Expert Support Applicatif
Secteur : Distribution

Informations forums :
Inscription : mars 2007
Messages : 158
Points : 140
Points : 140
là je vois pas comment, mais c'est pas forcement du php, peut etre que lorsque tu clique sur un bouton, tu renvoi une valeur, et suivant la valeur ta page change !

outch pas sur d'etre claire...

mais je te conseil d'allez voir coté javascript... cela pourrait peut etre d'aider.

Je ne pense pas pouvoir t'aider plus que cela.

Bonne chance pour la suite.
Codialement Alexandre
Alex70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 16h32   #12
Futur Membre du Club
 
Inscription : mars 2007
Messages : 72
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : mars 2007
Messages : 72
Points : 15
Points : 15
Merci pour toute ton aide !
avant d'aller voir le forum javascript, je vais chercher par moi meme

bonne journée a toi
Oli_Ifre 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 02h46.


 
 
 
 
Partenaires

Hébergement Web