8791 sujets

Développement web côté serveur, CMS

Bonjour,
Alors voici un petit problème que je n'arrive pas à résoudre. J' essaie de créer un diaporama qui devrait ressembler à ceci:
			
<div id="s1" class="pics">
<img alt="image1" src="image1.jpg"/>	
<img alt="image2" src="image2.jpg"/>
<img alt="image3" src="image3.jpg"/>
<img alt="image4" src="image4.jpg"/>
<imgalt="image5"src="image5.jpg"/>											
</div>
<div class="fleches">
<a class="next" id="next1" href="#" style="float: left">&lt;</a>
<a class="prev" id="prev1" href="#" style="float: right">&gt;</a>			
</div>


exemple en image:lien


Mais voilà le traitement du php me fait une répétition de la balise en plus des images...je sais bien que c'est dû à "while" mais je ne trouve pas la solution.... Smiley decu
exemple 2 lien

<?php

$img = $_GET['dir'];		 
$dossier = 'travaux/'.$img; 
$rep2 = opendir($dossier);


        while($fichier=readdir($rep2)) 
			{
			if (($fichier==".") || ($fichier=="..") || ($img==""))
                                {echo "";} 
			
			else if (substr($fichier, 0, 5) == "diapo")
 				{ 
				 ?><div id="s1" class="diapo">
	<?php

	echo '
<img alt="'.$fichier.'" src="'.$dossier.'/'.$fichier.'"/>';
?>
 </div>
     
	      <div class="fleches">
				<a class="next" id="next1" href="#" style="float: left">&lt;</a>
				<a class="prev" id="prev1" href="#" style="float: right">&gt;</a>			
         </div>
			<?	}
				
			else		
      		{ 	
			$fichier= str_replace("-", "'", $fichier);
			$fichier= str_replace("_", " ", $fichier);
			
			echo '<img src="'.$dossier.'/'.stripslashes($fichier).'" />'; 
			}
				
		closedir($dossier); 
}
?>

Voilà merci si quelqu'un a une idée Merci Smiley ravi
Tu ouvres la balise <div> à l'intérieur de ta boucle while. Il est donc normal que l'élément div se répète. Pour éviter la répétition, ouvre ton élément div avant la boucle et ferme-le après.

Soit dit en passant, pour parcourir un dossier, il y a un chemin plus court que le triumvirat opendir () / readdir () / closedir () : scandir (). Smiley smile
Modifié par Victor BRITO (20 Jan 2010 - 17:00)
Salut,

En mettant closedir($dossier); en dehors de la boucle ?
Au passage, la boucle c'est while(false !== ($fichier=readdir($rep2)))

EDIT : a non, j'ai rien dit, j'avais mal comprit le problème '^^
Modifié par jo_link_noir (20 Jan 2010 - 17:03)
Victor BRITO a écrit :
Tu ouvres la balise <div> à l'intérieur de ta boucle while. Il est donc normal que l'élément div se répète. Pour éviter la répétition, ouvre ton élément div avant la boucle et ferme-le après.

Soit dit en passant, pour parcourir un dossier, il y a un chemin plus court que le triumvirat opendir () / readdir () / closedir () : scandir (). Smiley smile


Merci les gars.
Victor BRITO, comme dit je sais que c'est dû à la boucle, mais je ne peux pas en sortir....enfin je crois Smiley ohwell

Le problème est que c'est la condition dans la boucle qui m'est utile....je loupe certainement quelquechose
Modifié par hophop (20 Jan 2010 - 17:11)
Smiley bawling je trouve pas....et ne connaissant pas bien scandir() je préfère rester sur ma base.
si quelqu'un voit une solution? je suis toujours preneur!