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 :

Boucle for() et formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    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 : 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
    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);
     
    ?>

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    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

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 56
    Points
    56
    Par défaut
    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!

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    Hello !
    Je suis pas sur de bien comprendre ce que tu m expliques

    Il faut que je fasse comme ca ?

    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
    <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>";

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    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 ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    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

  7. #7
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut
    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 : 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
     
    <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.
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    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 ^^

  9. #9
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut
    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...
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Points : 39
    Points
    39
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  11. #11
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut
    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
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

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

    bonne journée a toi

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

Discussions similaires

  1. [XL-2003] Initialisation d'un formulaire avec une boucle FOR
    Par apnw7931 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/03/2011, 15h14
  2. Réponses: 14
    Dernier message: 03/06/2008, 09h59
  3. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

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