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 :

Remplissage de lien sur une boucle while


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut Remplissage de lien sur une boucle while
    Bonjour à tous.

    Voici le code que j'utilise.

    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
     
    if ($requete->rowCount() > 0)				
    	{	
     
    		while ($donnees = $requete->fetch())
    		{
    		$lien = $donnees['mnemo_cb'];
    		?>																		
     
    	<tr>
    		<td>
     
    	<form id="lien_def" action="site_depann.php" method="post">
    <input type="hidden" name="defaut_selected" value="<?php echo $lien;?>"/>
    	</form>
    <a href='#' onclick='document.getElementById("lien_def").submit()'><?php echo $lien;?></a>
     
    		</td>
     
    		<td><?php echo $donnees['nom_ttutm']; ?></td>
    		<td><?php echo $donnees['function']; ?></td>
    		<td><?php echo $donnees['describe_fr']; ?></td>									
    	</tr>
     
     
    	<?php
    	}
    	?>
    		</table>
    	</p>
    	<?php
    	}
    Voilà en fait je récupère des noms de défauts depuis PhpMyAdmin que je remplis dans $lien.
    Je remplis les lignes du tableau sur la boucle while (donc la longueur de la requete) avec en première colonne le nom du défaut, ainsi que le lien associé permettant d'envoyer cette valeur en $_POST['defaut_selected']

    J'utilise alors le code

    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
     
    <div id="ecran_cb">
     
    	<?php 
    	if (isset($_POST['defaut_selected']))
         {
    		$def = $_POST['defaut_selected'];
     
    		$chemin = $_SERVER["DOCUMENT_ROOT"].'/Aide_Alstom/fiches/' .$_SESSION['curr_proj']. '/' .$def. '.pdf';
    		$chemin_small = 'fiches/' .$_SESSION['curr_proj']. '/' .$def. '.pdf';
     
    	if (file_exists($chemin))				
    	{
    	?>				
    		<iframe
    	src="<?php echo $chemin_small;?>" width="500" height="690" align="middle">
    		</iframe>								
     
    	<?php
    		}
    Voilà mon soucis en fait est le suivant :

    Dans mon tableau, j'ai bien différents défauts sur chaque ligne (à l'affichage).
    En revanche, la valeur du lien et donc de $_POST['defaut_selected'] est sur toutes les lignes à la valeur de la première

    Je n'ai vraiment aucune idée pourquoi, si vous avez une idée.
    Merci d'avance.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut
    A y réfléchir, je pense que le problème vient du fait que tous mes liens ont le même nom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    name = "defaut_selected"
    Et du coup le $_POST['defaut_selected'] a toujours la première valeur.

    Voyez-vous comment palier le problème ?

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Rapidement, comme ça, je dirais que tu as une erreur dans ton HTML.
    Tu fais ceci dans un boucle while()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="lien_def" ...>
    La conséquence est qu'à chaque itération tu perds l'unicité de l'id dans le DOM et après tu fais appel à cet un de ces ids avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='#' onclick='document.getElementById("lien_def").submit()'><?php echo $lien;?></a>
    L'id qui t'est retourné est le 1er id trouvé dans l'arborescence. Et c'est pour ça que tu as toujours la même valeur à la récupération du POST.

    Ensuite j'ai du mal avec ton approche.
    Pourquoi ne pas directement créer le bon URL qui tape à la porte de site_depann.php ? Tu n'envoies rien de particulier qui nécessite du POST.

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut
    Ben tu as raison d'avoir du mal, je n'y avais pas vraiment pensé.

    Du coup un petit coup de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href='site_depann.php?def=<?php echo $lien?>' ><?php echo $lien;?></a>
    Et tout va bien ! Merci à toi d'avoir pris du temps pour moi.

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

Discussions similaires

  1. insérer un if dans un echo sur une boucle while
    Par marlocq dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2014, 16h46
  2. Styliser un élément sur deux dans une boucle while
    Par skywhi dans le forum Langage
    Réponses: 6
    Dernier message: 12/12/2013, 13h59
  3. Erreur sur une boucle while
    Par Kymahri dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 28/08/2012, 14h42
  4. [MySQL] Erreur sur une boucle While
    Par PrinceMaster77 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/12/2009, 11h42
  5. lien sur une même page asp
    Par Redouane dans le forum ASP
    Réponses: 4
    Dernier message: 10/03/2004, 15h53

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