Page 1 sur 1

problème placement d'une div boucle php

Posté : 20 mai 2010, 16:24
par Invité
Bonjour à tous ,

J'ai un fichier php qui génère un tableau à la fin de chaque ligne j'ai créé des boutons (+) et (-) qui affiche et masque des détails sur chaque ligne du tableau lorsqu'on clique dessus.

Lorsque je clique sur le (+) de la ligne 1 les détails s'affiche sous cette ligne mais sa fait pareille pour toutes les lignes : en faite quand je clique sur le (+) de la ligne 2,3,4... les détails de ces lignes s'affiche sous la ligne 1 et non sur les lignes correspondantes.

Je pense que mon souci viens de mon code php. On m'a dit que je devait attribué un numéro de "ligne" à l'id de ma div pour que sa fonctionne ainsi que dans ma fonction "afficherDétail" c'est donc ce que j'ai fait au départ ma boucle c'était :
foreach($actions as $val)
		{	
			print "<tr>";
			print "<td>".$val["A"]."</td>";			
			print "<td>".$val["B"]."</td>";			
			print "<td>".$val["C"]."</td>";	
			print '<td><input type="button" value="+" OnClick="afficherDetail(\'' . $i . '\',\'' . $val["B"] . '\',\'' . $val["C"] .'\');"></td>';
			print '<td><input type="button" value="-" OnClick="effacer()"></td>';
			print "</tr>";
			print "<tr><td colspan=5><div id='detail_$i' style:display=none></div></td></tr>";
		}
Mais sa n'a rien changé ! soit le souci vien de ma fonction qui est la suivante :

Code : Tout sélectionner

function afficherDetail(ligne,leB,leC) { var ch; ch="ligne"+ligne+"&b="+laDate+"&c="+leCode; afficherPage("det.php",ch,"detail_"); } function effacer() { document.getElementById("detail_").innerHTML=""; }
"ligne" n'apparait que dans la fonction et je pense que c'est pas normal : ce que je veux dire c'est que pour "b" et "c" je m'en sert dans mon fichier ou il y a le détail : je fait
$leB=$_POST["b"];
	$leC=$_POST["c"];
Puis ensuite j'utilise $leB et $leC dans ma requête sql mais ligne je ne sais pas comment l'utilisé je sais juste que sa correspond à mon $i mais voila je ne sais pas faire le lien.

J'ai vraiment besoin d'aide :priere:

Merci beaucoup d'avance :wink:

Re: problème placement d'une div boucle php

Posté : 20 mai 2010, 20:53
par visualight

Re: problème placement d'une div boucle php

Posté : 21 mai 2010, 09:48
par Invité
Merci beaucoup pour ce lien mais je n'y comprend pas grand chose ! :oops:

et j'aimerais bien garder mes fonctions à moi si c'était possible

J'éspère que vous allez pouvoir m'aider :)

Tchupp

Re: problème placement d'une div boucle php

Posté : 21 mai 2010, 10:11
par Aureusms
Si tu créé une div fait attention.
Tu as marqué :

Code : Tout sélectionner

<div id='detail_$i' style:display=none>
Mais il faut écrire :
<div id='detail_$i' style='display=none;'>
Ca devrait marcher.

Re: problème placement d'une div boucle php

Posté : 21 mai 2010, 10:13
par Nours312
testes ceci ::
foreach($actions  as $Key => $val)
                {      
                        print "<tr>";
                        print "<td>".$val["A"]."</td>";                
                        print "<td>".$val["B"]."</td>";                
                        print "<td>".$val["C"]."</td>";
                        print '<td><input type="button" value="+" OnClick="afficherDetail(\'' . $key . '\',\'' . $val["B"] . '\',\'' . $val["C"] .'\');"></td>';
                        print '<td><input type="button" value="-" OnClick="effacer()"></td>';
                        print "</tr>";
                        print "<tr><td colspan=5><div id='detail_$key' style:display=none></div></td></tr>";
                }
@+

Re: problème placement d'une div boucle php

Posté : 21 mai 2010, 10:20
par meliiy
Merci beaucoup pour cette petite correction mais sa ne change rien même si je met pas le "style =display ..." sa fait pareille.

Ma div ne s'affiche qu'en dessous de la première ligne son contenu change quand j'appuie sur es boutons (+) en face de différentes lignes mais elle reste placé sous la première ligne du tableau au lieu de se placé à la ligne correspondante

Je comprend pas pourquoi sa ne fonctionne pas 8-| je pense que c'est un souci avec "ligne"

Re: problème placement d'une div boucle php

Posté : 21 mai 2010, 16:12
par Invité
quelqu'un pour m'aider ??

Re: problème placement d'une div boucle php

Posté : 21 mai 2010, 16:29
par Invité
testes ceci ::
foreach($actions  as $Key => $val)
                {      
                        print "<tr>";
                        print "<td>".$val["A"]."</td>";                
                        print "<td>".$val["B"]."</td>";                
                        print "<td>".$val["C"]."</td>";
                        print '<td><input type="button" value="+" OnClick="afficherDetail(\'' . $key . '\',\'' . $val["B"] . '\',\'' . $val["C"] .'\');"></td>';
                        print '<td><input type="button" value="-" OnClick="effacer()"></td>';
                        print "</tr>";
                        print "<tr><td colspan=5><div id='detail_$key' style:display=none></div></td></tr>";
                }
@+
Merci mais la dans le coup les + et - ne fonctionne plus :( voici mon code :
foreach($actions as $key => $val)
		{	
			print "<tr>";
			print "<td>".$val["LIB_ACTION"]."</td>";			
			print "<td>".$val["DATE_ACTION2"]."</td>";			
			print "<td>".$val["CODE_LABEL"]."</td>";	
			print '<td><input type="button" value="+" OnClick="afficherDetail(\'' . $key . '\',\'' . $val["DATE_ACTION2"] . '\',\'' . $val["CODE_LABEL"] .'\');"></td>';
			print '<td><input type="button" value="-" OnClick="effacer()"></td>';
			print "</tr>";
			print "<tr><td colspan=5><div id='detail$key' style:display=none></div></td></tr>";
		}
C'est pas avec le "ligne" de ma fonction que sa plante??

Re: problème placement d'une div boucle php

Posté : 21 mai 2010, 18:04
par Nours312
print "<tr><td colspan=5><div id='detail$key' style:display=none></div></td></tr>";
c'est pas ce que je t'avais dis non plus ... :)

Re: problème placement d'une div boucle php

Posté : 21 mai 2010, 18:58
par Silenas
Peut-tu expliquer mieux se que tu veut? tu veut que quand tu clique sur + cela rajoute une ligne ou tu veut juste masquer / afficher les ligne (pour du gain de place)?