Page 1 sur 1

intégrer une fonction js dans une boucle while

Posté : 27 nov. 2009, 05:37
par poetedelavie
Bonjour à tous,
je viens d'intégrer une function javascript dans une boucle while pour que la fonction s'applique à tous les passages de la boucle. Ça marche! mais c'est vraiment bizarre j'écris la fonction avec un nouveau nom ainsi que les variable que j'incrémente de 1 à chaque passage de la boucle avec la variable $i.
En php j'apelle la fonction ou j'en ai de besoin et aussi souvent que je le veux et elle s'exécute mais là ouf! je n'arrivais pas à la faire exécuter correctement à chaque passage de boucle parcequ'elle ne veut que s'appliquer au premier élément de la boucle that it.

bon! je vous montre ce que j'ai fait et je vous prie de me proposer une manière plus intelligente d'écrire ce code sans faire une fonctions pour chaque passage de boucle.

merci!
$i=1;
while ($ligne=mysql_fetch_array($resultat)) {
//--------------------------------------javascrip pour ouvrir un block
echo <<<HEREDOC
<script language="javascript">
function toggle$i() {//--------------------------------------------ici le $i change le nom de la fonction comme vous pouvez voir
var ele$i = document.getElementById("toggleText$i");
var text$i = document.getElementById("displayText$i");
if(ele$i.style.display == "block") {
   	 ele$i.style.display = "none";
text$i.innerHTML = "show";
 	}
else {
ele$i.style.display = "block";
text$i.innerHTML = "hide";
}
} 
</script>
HEREDOC;
//--------------------------------------fin du javascript
echo "<tr>";
echo "<input type=hidden name=id[] value=".$ligne['id_boutique'].">";
//-----------pour l'image
if(file_exists("../photo/boutique/petit/".$ligne['id_boutique'].".jpg")){
echo "<td><a id=displayText".$i." href=\"javascript:toggle$i();\"><img src=../photo/boutique/petit/".$ligne['id_boutique'].".jpg width=75 border=0></a>";
echo "<div id=toggleText".$i." style=\"display: none\">";

Re: intégrer une fonction js dans une boucle while

Posté : 27 nov. 2009, 10:17
par zeus
Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Re: intégrer une fonction js dans une boucle while

Posté : 02 janv. 2010, 17:43
par niuxe
Hello,

Mélanger css, js et php, :-k C'est peut être pas vraiment judicieux. Pas très propre ce script. La solution serait plutôt de faire de l'AJAX. ;)

Au passage, innerHTML est déprécié.
Au deuxième passage, en lisant vite fait ton code, $i vaudra de toute manière 1. De plus je ne vois pas vraiment l'utilité de $i.
Pour chipoter, la mise en page tableau, c'est vieux et pas glop le code, la maintenance, etc. Après je peux me tromper puisque je ne connais le contexte... Mais bon un formulaire en tableau, hum.

Bonne journée. :)

Re: intégrer une fonction js dans une boucle while

Posté : 02 janv. 2010, 18:58
par stealth35
le meilleur moyen de communiquer entre php et javascript c'est le json, suffis de creer un tableau ou un object que tu rempliras avec ta boucle while, et un coup de json_encode et le tour est joué, apres a toi de choisir si tu veux envoiyé l chaine direct dans le code ou la recupérer via ajax