Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Participez aux Concours Mensuels :

Concours Mensuels Alsacréations
Auteur
wormy
# 04 Jul 2008 - 13:41:01
Citer
3 Posts
Bonjour à tous! Ca fait un petit moment que je viens ici pour trouver des réponses... C'est presque toujours le cas, sauf aujourd'hui! Alors je me lance!

J'ai dans un questionnaire une image antiflood (generée en php). Si le code généré n'est pas lisible, je veux que l'utilisateur le renouvelle sans rafraichir la page (sinon il doit retaper toutes ses informations.)

Voici un extrait de mon code.

Contact.php

<div id="image_spam"><img id="antiflood" src="anti_spam.php?name=cde&strlen=4" alt="anti-flood" name="antiflood" ></div>
<br><input value="Rafraichir le code" name="rafraich" type="button" onclick='refresh_antiflood()'>


Fonction JS:

voici les 2 solutions que j'ai testé:

Solution1-
function refresh_antiflood(){
var im1 = document.getElementById("image_spam");
im1.innerHTML='<img src="anti_spam.php?name=cde&strlen=4" alt="anti-flood" id="antiflood" name="antiflood">';}


Solution2-
function refresh_antiflood(){
var im2 = document.getElementById("antiflood");
im2.src='anti_spam.php?name=cde&strlen=4';}


Et là! Misère! ça marche très bien sur IE6, mais pas sur Firefox!!!! eek et je ne vois vraiment pas pourquoi?

Je me dis que ça peut etre un problème de synthaxe dans l'url de l'image (? pour passer des variables)

C'est comme ça depuis ce matin! et là je deviens dingue!

J'espere avoir été clair... Je ne suis pas un habitué des forums!
Merci d'avance!
Modifié par wormy (04 Jul 2008 - 21:27)

^
wormy
# 04 Jul 2008 - 16:12:21
Citer
3 Posts
Bon, j'ai trouvé!

En fait, il ne faut pas que l'url de la future image soit identique à celle affichée.... ohwell

Donc, j'ai defini une variable "bidon", dans mon url qui pointe vers mon image générée par PHP:

ce qui donne:


function refresh_antiflood()
{
var nb= Math.floor(Math.random() * 30)+1; // Je definis une variable aléatoire...

var im1 = document.getElementById("image_spam");
var im2 = document.getElementById("antiflood");

//... et je l'attribue à la variable "bidon" dans mon url .
im1.innerHTML='<img src="anti_spam.php?var='+nb+'" alt="anti-flood" id="antiflood" onclick="refresh_antiflood()">';

}



Et là ça marche sur Firefox, Ie6 et Ie7!.. ouf! merci la p'tite bidouille!

A+

^
Gatsu35
# 05 Jul 2008 - 00:50:56
Citer
203 Posts
Faudrait avoir quelque chose de plus gros que 30 en nombre aleatoire

un Math.random() en brut ça fonctionne à merveille. Ton pb était simplement un problème de cache. Ce qui pour moi est tout naturel comme fonctionnement

^
wormy
# 05 Jul 2008 - 10:28:00
Citer
3 Posts
En nombre aleatoire j'ai mis 30 au pif. Le but c'est qu'entre deux demandes de rafraichissement la variable ne soit pas la même (alors ça peut etre 30 ou 5000...). Après, que le problème de cache soit naturel ou pas ça je m'en fiche un peu. Je voulais juste trouver un truc pour que ça fonctionne. C'est une des rares fois où je suis embété avec ff...

Mais si tu as une meilleure idée pour eviter cette bidouille, je suis preneur! smile

^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.7.9 © dew
Contacter l'administrateur - 6.9 ms - Charte