code pour actualiser une image....

Eléphanteau du PHP | 19 Messages

12 août 2009, 16:57

a la place de "photo" et "photo2" que tu as mis, j'ai mis un chemin, les "/" ne sont peut etre pas acceptés!!! (photo/gds et photo2/gds)
j'ai mis ceci :
<head>
<script type="text/javascript">

function change_im(id,dossier) {

  if (this.conteneur = document.getElementById(id))
  {
   var photo = dossier+'/'+parseInt(Math.random()*95)+'.jpg';       //le probleme aussi c'est que le nombre d'images dans photo/gds et photo2/gds sont differents!!!!!
   this.conteneur.src = photo;
  }
}

</script>
</head>


<body onload="change_im('image_content,'photo/gds');change_im('image_content2,'photo2/gds)">



<div>
<p>
<img id = "image_content" src="" alt="" />
</p>
<input type="button" onclick="change_im('image_content','photo/gds')" value = "rafraichir" />
</div>


<div>
<p>
<img id = "image_content2" src="" alt="" />
</p>
<input type="button" onclick="change_im('image_content2','photo2/gds')" value = "rafraichir" />
</div>


désolé je ne suis pas trop doué pour le javascript....!!! :(

Eléphant du PHP | 224 Messages

12 août 2009, 18:23

Bonjour :-)

Je n'ai pas testé, mais essaie ce bout de code :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN"> <html> <head> <title></title> <script type="text/javascript"> function change_image(image_id, image_dossier, image_nombre) { if (this.conteneur = document.getElementById(image_id)) { var photo = image_dossier+'/'+parseInt(Math.random()*image_nombre)+'.jpg'; this.conteneur.src = photo; } } </script> </head> <body onload="change_im('image_content_1,'photo/gds',95);change_im('image_content_2,'photo2/gds',45)"> <div> <p><img id="image_content_1" src="" alt="" /></p> <input type="button" onclick="change_image('image_content_1','photo/gds',95);" value = "rafraichir" /> </div> <div> <p><img id="image_content_2" src="" alt="" /></p> <input type="button" onclick="change_image('image_content_2','photo2/gds',45);" value = "rafraichir" /> </div> </body> </html>
La fonction se nomme désormais "change_image" et elle prend 3 arguments :
  • - image_id = c'est l'identifiant unique de chaque balise "img" de la page, soit : "image_content_1" et "image_content_2" ;
    - image_dossier = c'est le chemin d'accès du dossier source où se trouvent les images à afficher ;
    - image_nombre = c'est le nombre d'images contenue dans chaque dossier source.
Note, sur le second appel de la fonction, aussi bien dans la balise "body" que dans la seconde balise "img", j'ai mis 45 comme nombre d'images, il faut bien sûr remplacer cette valeur par celle qui du nombre exact d'images contenues dans ce dossier.

Voilô :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphanteau du PHP | 19 Messages

12 août 2009, 19:17

salut fredo,
j'ai essayé comme tu as dit.... mais ça ne fonctionne pas, les images ne s'affichent pas du tout..... :priere:

Eléphant du PHP | 224 Messages

12 août 2009, 19:25

Ok, sur ce même code, remplace la ligne "body" par celle-ci

Code : Tout sélectionner

<body onload="change_image('image_content_1,'photo/gds',95);change_im('image_content_2','photo2/gds',45)">
Je pense que ça devrait aller maintenant...
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphanteau du PHP | 19 Messages

12 août 2009, 19:36

négatif, toujours pareil... #-o

Eléphant du PHP | 224 Messages

12 août 2009, 19:53

négatif, toujours pareil... #-o
C'est vraiment bizarre :(

Ok, si avec une fonction ça ne veut pas marcher, tente la solution de l'instruction intégrée à la balise, du genre :

Code : Tout sélectionner

<p><img src="0.jpg" title="Cliquez sur l'image pour afficher une autre" alt="" onclick="this.src='photo/gds/'+parseInt(Math.random()*95)+'.jpg';" /></p> <p><img src="0.jpg" title="Cliquez sur l'image pour afficher une autre" alt="" onclick="this.src='photo2/gds/'+parseInt(Math.random()*45)+'.jpg';" /></p>
Il faut cliquer sur les images pour les changer (remplace 45 par le vrai nombre d'images contenues dans ce dossier)...

Je continue à penser que la solution utilisant une fonction c'est quand-même mieux, mais bon, c'est étrange que ça ne marche pas chez toi... 8-|
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphanteau du PHP | 19 Messages

12 août 2009, 21:27

non il me faut absolument un bouton rafraichir en dessous car je fais deja un lien vers une autre page sur l'image aleatoire...... c subtile!!!!

Eléphant du PHP | 224 Messages

12 août 2009, 21:36

non il me faut absolument un bouton rafraichir en dessous car je fais deja un lien vers une autre page sur l'image aleatoire...... c subtile!!!!
Dis Chrismim, tu peux employer un autre ton Stp, on tente de t'aider, on ne peut pas tout deviner et on n'est pas là non plus pour faire les choses à ta place !

Avec tout ce que contient ce topic comme pistes, propose quelque chose à ton tours, il faut bien que cet échange puisse t'apporter quelque chose d'autre qu'un bout de code fonctionnel... à toi de jouer !

a+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

ViPHP
AB
ViPHP | 5818 Messages

13 août 2009, 03:29

Oui bon, à cet endroit cela semblait fonctionner et tu m'a demandé de rajouter un paramètre (le dossier du répertoire) car les dossiers pouvaient être différents.
J'ai donc ajouté un paramètre à la fonction qui permettait de passer le dossier à la fonction.

Cela dit quand j'ai écrit les lignes de ce code les paramètres envoyés n'étaient pas les bons puis j'avais indiqué "photo" et "photo2" alors que tes dossiers se nomment apparemment "photos" et "photos2".

Ci- dessous les extraits du code (du lien ci-dessus) où tu aurais dû remplacer "photo" par "photos"

Code : Tout sélectionner

<body onload="change_im('image_content,'photo');change_im('image_content2,'photo2')"> ... <input type="button" onclick="change_im('image_content','photo')" value = "rafraichir" /> ... <input type="button" onclick="change_im('image_content2','photo2')" value = "rafraichir" />
A vrai dire je m'en suis rendu compte en postant, mais je n'ai pas eu le temps de rectifier car je devais partir. Et puis si tu veux un peu comprendre quelque chose il te faut bien essayer de réfléchir un peu.
Le premier paramètre de la fonction correspond à l'id de l'image, le second au dossier. Si tu modifie l'id de l'image il te faudra modifier le paramètre, de même si le dossier passé comme argument à la fonction n'est pas le bon il suffit de le modifier par : change_im('image_content','photos') , a supposé que ton dossier se nomme "photos"

Pourquoi ça marchait dans le précédent code (le premier lien que j'ai donné) ? parce que le nom du dossier n'était pas passé comme argument dans la fonction mais écrit en dur dans la fonction avec la bonne nomination du dossier "photos" (avec un s)

Code : Tout sélectionner

function change_im(id) { /... var photo = 'photos/'+parseInt(Math.random()*95)+'.jpg'; /... }

Ensuite le nombre de tes photos est différent par dossier, ben on ajoute un troisième paramètre, de même que l'on en a rajouté un second pour le nom des dossiers, et souviens-toi, un premier pour indiquer l'affichage de deux images différentes dans la même page.

FredoMkb t'a montré comment passer ce troisième paramètre, que normalement tu aurais pu déduire de la progression des exemples précédents.
Regarde l'évolution du code depuis le début du topic, notes les instants où ça marche et enregistre-les et comme ça tu pourras voir par la suite à partir de quelles modifications ça ne marche plus.
Essaies de voir comment fonctionnent les fonctions... prends le temps de comprendre, sinon tu n'avanceras pas dans la programmation et il te faudra toujours quelqu'un pour faire ton code à ta place.
Pour de petites choses comme celles-ci qui prennent quelques minutes tu trouveras des bénévoles mais pour des choses plus ardues personne ne passera plusieurs heures à ta place sauf à être payé pour le faire.

Enfin bon, oublies tes histoires de "gds" ça ne fera pas avancer ton histoire, et essaies de comprendre comment fonctionne le code plutôt que de tenter des trucs un peu au hasard (surtout qu'à un moment tu avais un code de fonctionnel).

Cela dit, à ta décharge, il est vrai que javascript est beaucoup plus difficile à débugguer que php.

Dans la fonction ci-dessous, par rapport au code précedent j'ai ajouté un "alert" pour que tu puisses voir le chemin de ta photo. A supprimer en phase fonctionnelle évidemment, c'est juste pour du contrôle en phase de développement.

Code : Tout sélectionner

function change_im(id,dossier) { if (this.conteneur = document.getElementById(id)) { var photo = dossier+'/'+parseInt(Math.random()*95)+'.jpg'; this.conteneur.src = photo; alert(photo); } }

Eléphant du PHP | 224 Messages

13 août 2009, 06:48

Bonjour :)

Merci AB pour ta réponse calme et constructive... et je suis désolé par la teneur de la mienne, mais bon, je me suis quand-même retenu, histoire de rester poli...

Si j'ai bien compris ton analyse, nous utilisions un mauvais chemin d'accès pour les dossiers images dans nos propositions, c'est ça ?

Je pense que notre ami Chrismim aurait pu s'en apercevoir s'il s'était intéressé un tant soit peu aux codes qu'on lui proposait...

Ce qui m'a vraiment agacé, c'est son histoire de lien sur l'image ver une autre page... j'ai parcouru attentivement tout le topic, et je n'ai vu aucune part une telle précision, même dans les codes qu'il a proposé, aucune trace de ce fameux lien... non seulement il faut lui faire un code fonctionnel, mais en plus il faut qu'on soit devins... faut pas pousser !

Ok, je me calme... passons... l'affaire est clause, mais parfois ce type d'attitude, limite irrespectueux, me met hors de moi !

Allez, j'espère qu'il arrivera à faire son code, moi j'arrête là su cet échange...

à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphanteau du PHP | 19 Messages

13 août 2009, 16:15

salut les gars,
désolé fredo de t'avoir offensé, ce n'était pas mon intention.... mais alors vraiment pas.... si j'ai manqué de tact dans mes propos j'en suis navré...... mais si tu me connaissais, tu verrais que je ne suis pas bien méchant, au contraire....
bon merci pour vos réponses, je vais essayé peut etre demain car la je suis crevé.
a plus tard ;)

Eléphant du PHP | 224 Messages

13 août 2009, 17:13

désolé fredo de t'avoir offensé, ce n'était pas mon intention....
Mais non, tu ne m'a pas offensé, pas du tout, et encore heureux, car ma réaction aurait été de toute autre nature.

Disons que ta réponse, le ton et le contenu, ma vraiment agacé sur le moment ! :non:

Pour être honnête avec toi, ton problème aurait dû, normalement, être résolu en 4-5 messages maximum, là on est à la 2e page d'échanges et je suis sûr que tu n'a pas encore un code fonctionnel chez toi.

Avec AB nous avons tenté de t'apporter plus qu'un début de solution, en multipliant les pistes, mais si tu ne suis pas un minimum, si tu ne les teste pas attentivement, si tu ne les explores pas un peu plus de ton côté, c'est sûr qu'on n'arrivera jamais à un bon résultat...

Et puis, ton histoire de lien sur l'image, franchement, comment veux-tu qu'on le sache si tu ne le précises nulle part... hein ? 8-|

Allez, l'affaire est close en ce qui me concerne, mais tâches à l'avenir de t'impliquer un peu plus dans les échanges, surtout si c'est toi qui demande de l'aide... d'acc ? :?:

à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphanteau du PHP | 19 Messages

13 août 2009, 20:45

c'est vrai que je n'ai pas donné toutes les pistes ou que je ne me suis pas forcément bien expliqué....
mais tu sais, ce n'est pas grave non plus si je n'ai pas un code fonctionnel.... il n'y a pas mort d'homme..... heureusement tu me diras ;)

Eléphanteau du PHP | 19 Messages

13 août 2009, 21:20

AB, non j'avais bien mis un s à photo dans les essais précédents....

Eléphanteau du PHP | 19 Messages

13 août 2009, 21:22

je vais faire des essais, merci bcp, je vous tiens au courant...