Vous n'êtes pas identifié(e).
Pages :: 1
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:
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....[decu]
exemple 2 lien
$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"><</a>
<a class="prev" id="prev1" href="#" style="float: right">></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 [ravi]
Hors ligne
Tu incrémentes une variable et tu vérifies sur un modulo.
Par exemple pour l'affichage toutes les 5 instructions :
Hors ligne
Merci beaucoup de ton aide,
mais je dois avouer que j'y arrive pas.
Je comprends bien qu'il faut pouvoir au sein de la boucle ne répéter qu'une seule la <div id="s1"> et répéter les images seulement, mais ça m'échappe
EDIT: j'ai remis les liens du premier message à jour
merci
Dernière modification par hophop (21-01-2010 13:18:20)
Hors ligne
bonjour xTG,
en gros:
Je parcours un dossier pour voir ce qu'il y a dedans,
si fichier . ou .. = n'affiche rien,
si le début du fichier commence par "diapo" = affiche un diaporama,
sinon = affiche les images normalement.
jusque là pas compliqué...mais comme dit précédemment mon diaporama (en javascript) doit être entre les balises <div id="s1"...>"x fois <img src="diapo....." />"</div>
Il faut savoir qu'il peut y avoir à la fois des images normales et un diaporama, je ne veux donc pas de la <div id="s1"> si il n'y a pas de diapos.
Merci en tout cas, je m'en tire les cheveux mais je pense que c'est dû à mes premiers pas:D
Hors ligne
Un simple booléen fera donc l'affaire.
Hors ligne
Merci beaucoup xTG ça marche, mais.....:/
il reste le problème des flèches de navigation qui doivent s'inserer juste après:
j'ai essayé pas mal de choses mais en vain..
en tout cas merci, je connaissais ce truc des booléens mais sans savoir l'appliquer!;)
Hors ligne
A afficher tous les combien d'images ? Si tu as un nombre précis tu utilises un modulo.
Si aucun et que tu le veux à la fin tu mets un if à la fin de ta boucle :
Hors ligne
Bonjour et merci xTG encore un pas de fait...
Merci pour tout tes efforts
Il y a un dernier qui me chiffonne:/ et je ne trouve toujours pas l'erreur.
Désormais le diaporama marche (pas dans le bon ordre mais ça je devrais pouvoir m'en sortir) mais il intègre une image qui ne commence pas par "diapo" mais par "img". image qu'il n'affiche donc pas normalement.
voici le lien si tu veux voir : lien
$img = $_GET['dir'];
$dossier = 'travaux/'.$img;
$rep2 = opendir($dossier);
$diapoDiv = false;
while (false !== ($fichier=readdir($rep2))){
if ($fichier != "." && $fichier !=".." && substr($fichier, 0, 5) != "diapo")
{
echo '<img src="'.$dossier.'/'.$fichier.'" />';
}
else if (substr($fichier, 0, 5) == "diapo")
{
if( $diapoDiv == false )
{
echo '<div id="s1" class="diapo">';
$diapoDiv = true;
}
echo '<img alt="'.$fichier.'" src="'.$dossier.'/'.$fichier.'"/>';
}
}
if( $diapoDiv == true )
{
echo '</div>';
echo ' <div class="fleches">
<a class="next" id="next1" href="#" style="float: left"><</a>
<a class="prev" id="prev1" href="#" style="float: right">></a>
</div>';
}
closedir($rep2);
?>
Dernière modification par hophop (22-01-2010 12:57:45)
Hors ligne
Si tu regardes bien le code généré ton image dont le nom ne comporte pas "diapo" se trouve en dehors du div contenant le diaporama.
Donc je ne vois pas où est le soucis.
Est-ce qu'il ne faut pas l'afficher ? Dans ce cas la première partie de ton if n'est pas à mettre.
Hors ligne
non tu as raison tout est OK.
Mais pour cette page il y a DEUX images ne commençant pas par diapo.
Une est bien en dehors du diaporama, et l'autre est dans le diaporama....étrange, non?
Hors ligne
Bon bon bon,
je vais essayer régler ça avec un array, mais je peux dire que c'est résolu!
Merci beaucoup xTG
Hors ligne
Pages :: 1