Bonjour à tous,

J'ai une (autre) question (désolé, dites le moi si je vous saoule).

J'aimerais faire un document avec un include (ou un truc du genre), sauf que l'include n'irait pas chercher l'information dans une autre page mais directement sur la même page. Je m'explique : j'utilise le slideshow html suivant :

a écrit :
<SCRIPT><!--
thisImg = 1
imgCt = 16
function newSlide(direction) {
if (document.images) {
thisImg = thisImg + direction
if (thisImg < 1) { thisImg = imgCt }
if (thisImg > imgCt) { thisImg=1 }
document.slider.src = "photo" + thisImg + ".jpg" }
}
--></SCRIPT>

<body>
<A HREF="javascript:newSlide(-1)">FLECHE GAUCHE</a>
<IMG SRC="images/photo1.jpg" name=slider>
<A HREF="javascript:newSlide(-1)">FLECHE DROITE</a>
</body>


En français, le slideshow s'ouvre sur une image
a écrit :
"photo" + thisImg + ".jpg"

avec thisImg = un chiffre.
et à chaque fois que l'on clique sur la flèche de droite, on incrémente thisImg de un et sur celle de gauche, thisImg diminue de un. Donc si thisImg est égal à 8, cela ouvre photo8.jpg et si l'on clique sur la flèche droite, ça affiche photo9.jpg et sur celle de gauche, photo7.jpg.

Mon premier problème est le suivant : j'aimerais ajouter une légende à la photo, et ce, sans créer un fichier pour chaque légende. J'aimerais donc avoir un truc du genre (en php) :
Si Img=1 alors légende="la légende de photo1"
Si Img=2 alors légende="la légende de photo2"
etc...

Mais, c'est pas fini, j'ai un autre problème! (je sais, je suis chiant! Mais j'assume Smiley cligne ). J'ai fait une page avec des vignettes et j'aimerais qu'en cliquant sur chaque vignette, le slideshow se lance en affichant directement la photo correspondant à la vignette. En gros, il faudrait qu'en cliquant sur la vignette "1" de la page "vignette", la valeur de thisImg de la page "slideshow" devienne "1" ; en cliquant sur la vignette "2", thisImg=2, etc... alors que sur le script ci-dessus, la valeur de départ de thisImg est toujours de "1".

Et mon troisième problème, c'est que je suis pas doué en php et que j'avoue mon impuissance Quelqu'un peut-il m'aider ou me donner l'adresse d'un site où je trouverais l'info?

Un zillion de merci d'avance.

PS : une fois trouvé la solution, je mettrais bien entendu l'ensemble du code sur le forum.
Modifié par korben (30 Oct 2005 - 02:34)
Salut a toi,

a écrit :
Mon premier problème est le suivant : j'aimerais ajouter une légende à la photo, et ce, sans créer un fichier pour chaque légende. J'aimerais donc avoir un truc du genre (en php) :
Si Img=1 alors légende="la légende de photo1"
Si Img=2 alors légende="la légende de photo2"
etc...

Dans ce cas, en php, l'idéal est d'utiliser un switch : le principe est le même que plusieurs if imbriqués :
switch($maVariable) {
   case 1 :
      /* Comportement si $maVariable vaut 1 */
      break;  /* permet de sortir du switch sans interpréter les autres case */
   case 2 :
     /* Comportement si $maVariable vaut 2 *
     break;
}

Néanmoins, cette solution risque d'être un peu lourde si tu as beaucoup de photos (un case par photo, si tu en as une centaine ça commence a etre lourd !!!), tu pourrais peut etre envisager de passer par une base de données ?


a écrit :
Mais, c'est pas fini, j'ai un autre problème! (je sais, je suis chiant! Mais j'assume cligne ). J'ai fait une page avec des vignettes et j'aimerais qu'en cliquant sur chaque vignette, le slideshow se lance en affichant directement la photo correspondant à la vignette. En gros, il faudrait qu'en cliquant sur la vignette "1" de la page "vignette", la valeur de thisImg de la page "slideshow" devienne "1" ; en cliquant sur la vignette "2", thisImg=2, etc... alors que sur le script ci-dessus, la valeur de départ de thisImg est toujours de "1".

Pas de problème, continuons Smiley cligne !!! Pour ça, une solution serait de modifier le lien en y ajoutant en paramètre le numéro de ta vignette : tu peux alors avoir recours à des liens comme tu as déjà dû en voir sur internet, du type viewSlide.php?slide=2... Ensuite quand tu arrives sur ta page viewSlide.php, tu n'as plus qu'à récupérer cette variable, ce qui dans l'exemple que je viens te donner, se ferait ainsi :
$slide = $_GET['slide'];

En fait, pour faire rapidement, lorsque tu passes des paramètres dans ton adresse, tu les récupères par le "tableau" $_GET[nomDuParametreDel'Adresse]... Voilà, ensuite il ne te reste plus qu'à commencer ton affichage à l'image dont tu viens de récuperer le numéro !!! Smiley biggrin

a écrit :

Et mon troisième problème, c'est que je suis pas doué en php et que j'avoue mon impuissance Quelqu'un peut-il m'aider ou me donner l'adresse d'un site où je trouverais l'info?

Euh eh bien eh bien... Pour débuter je te conseille :
AZ-Php
Php-Debutant.org
Et la bible, très pratique lorsque tu recherches le fonctionnement d'une fonction précise par exemple : Php.net



Voilà, j'espère que ma réponse t'aura rendu service, n'hésite pas si je n'ai pas été clair ou que j'ai répondu a coté de la plaque !!! Smiley smile

Cordialement,


PierreAd
Merci, mille merci, un million de merci (je m'arrête là, mais je pourrais continuer... D'ailleurs, merci, ça prend un "s" au pluriel???)

Tes solutions me paraissent claires (en tout cas, c'est pas du chinois). Je vais de suite les essayer!

J'ai effectivement une centaine de peintures, séparé en quatre slideshow. Donc les pages ne seront pas trop lourdes. Et comme j'ai pensé à nommer les images de la gallerie "heads" "heads1, heads2, etc... ", de "cats", "cats1, etc...", il me suffira de faire une fois la structure et de remplacer heads par cats, etc...

La solution de la base de donnée n'est pas bête, mais je n'en ai jamais fait. Faudrait que je passe une journée à lire tout ce que je peux trouver sur les sites que tu m'as conseillé, mais là, je me sens pas le courage ces jours-ci. Une fois le site terminé, c'est promis, je le ferais.

Bon, allez, je retourne au boulot! Si tu veux, tu peux aller voir le site en développement sur :
http://alifproductions.com/kelli/intro.html

Et encore mille fois merci!

Korben

PS : j'en profite : vu que tu as l'air de bien t'y connaître, si tu as le temps, peut-être pourrais-tu aller faire un tour ici :
http://forum.alsacreations.com/topic-4-8423-1-Overflow-auto-et-tableau.html
J'y ai posté un autre de mes problèmes et je suis sûr que la solution est toute proche.
SI t'as pas le temps, je t'en voudrais pas (heureusement Smiley cligne ) et si t'en as, ça presse pas, j'ai déjà pleins de choses à faire!
Mais bon, je veux pas non plus abuser de ta sympathie!

Allez, je t'embrasse même pour la peine, ou plutôt j'embrasse la femme dont tu as pris les yeux pour avatar! Smiley biggrin
Modifié par korben (29 Oct 2005 - 22:54)
J'ai mis en oeuvre les solutions que tu m'as proposées et ça marche. Merci, merci, merci.

Sauf ceci, qui ne marche absolument pas :

PierreAd a écrit :

Pas de problème, continuons Smiley cligne !!! Pour ça, une solution serait de modifier le lien en y ajoutant en paramètre le numéro de ta vignette : tu peux alors avoir recours à des liens comme tu as déjà dû en voir sur internet, du type viewSlide.php?slide=2... Ensuite quand tu arrives sur ta page viewSlide.php, tu n'as plus qu'à récupérer cette variable, ce qui dans l'exemple que je viens te donner, se ferait ainsi :
$slide = $_GET['slide'];

En fait, pour faire rapidement, lorsque tu passes des paramètres dans ton adresse, tu les récupères par le "tableau" $_GET[nomDuParametreDel'Adresse]... Voilà, ensuite il ne te reste plus qu'à commencer ton affichage à l'image dont tu viens de récuperer le numéro !!! Smiley biggrin

Je viens d'essayer cette solution et... ça ne marche pas.

La variable définissant le numéro de l'image à afficher étant "thisImg", voilà ce que j'ai fait avant de lancer la page slide.php?slide=3 :
- J'ai renommé slide.html en slide.php pour accepter le php.
- Dans le script, j'ai remplacé :
a écrit :
thisImg=1

par
a écrit :
$thisImg = $_GET['slide'];

ça marchait pas, alors j'ai essayé avec d'autres solutions (en enlevant le $, etc) et cela n'a rien fait.

Bref, je suis paumé....

Quelqu'un a-t-il la solution, svp?
Modifié par korben (30 Oct 2005 - 02:47)
J'ai trouvé la solution! Un très grand merci à PierreAd et www.az-php.com!

J'ai viré le Java et remplacé la fonction newSlide() par un simple :

a écrit :
<A HREF="slideshow.php?slide=<?
$i = $_GET['slide'];
$i--;
print $i;
?>">FLECHE DE GAUCHE</a>


et la même chose avec la flèche de droite (sauf $i-- qui devient $i++).

Ainsi, si je suis sur la page "slideshow.php?slide=5" les flèches mènent respectivement sur "slideshow.php?slide=4" et "slideshow.php?slide=6".

En ajoutant la fonction switch(), cela me permet d'inclure une légende différente pour chaque photo.

C'est tellement simple que je me demande pourquoi je me faisais autant ch_er!

Comme quoi, apprendre les bases du php, ça sert vachement! Smiley cligne
Modifié par korben (30 Oct 2005 - 02:34)
Ravi d'avoir pu t'aider Smiley biggrin ,

Eh oui, connaitre les bases de php ça peut servir, surtout pour ce genre de problèmes Smiley cligne ... après il y a peut être moyen de faire quelque chose en javascript mais je pense que ce serait plus tarabiscotté, perso je ne suis pas un pro en JS donc voilà !!!

Je vais jeter un coup d'oeil à ton autre problème... Smiley ravi

++


PierreAd