[javascript] bannière aléatoire

Résolu/Fermé
kichilibuz Messages postés 2 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 13 juin 2007 - 13 juin 2007 à 16:11
 mathiss - 18 févr. 2008 à 11:39
Bonjour à tous
J'ai une asso qui fait de l'hébergement de site pour des groupes de zic. Les groupes peuvent faire de la pub entre eux via une bannière en 468x60px (www.parazic.com)

Actuellement, ces bannières sont gérées via un fichier pubasso.js sur le serveur de l'asso et sont affichés l'une après l'autre dans l'ordre de saisi. Je voudrai qu'il en affiche seulement une au hasard dans la liste saisi, quelqu'un peut il m'aider?

Merci d'avance !
Thibaut

Pour plus d'infos, chaque site est alors composé :

<HEAD>
<script LANGUAGE="JavaScript" src="http://www.parazic.com/pubasso.js">
</script>
</HEAD>
<BODY>
<SCRIPT language="JavaScript">banniere.Init();</SCRIPT>
</BODY>

Et le pubasso.js est :

function disp(txt) {document.write(txt);}
var banniere=new CreerBan('Parazic.com vous informe...');
banniere.Add("http://www.dust.parazic.com/img/banniere.gif","http://www.dust.parazic.com/","_blank",15);
banniere.Add("http://www.sons-du-kiosque.parazic.com/img/banniere.gif","http://www.sons-du-kiosque.parazic.com/","_blank",15);
banniere.Add("http://www.diabolo.parazic.com/img/banniere.gif","http://www.diabolo.parazic.com/","_blank",15);


function CreerBan(alt) {
this.nb=0;
this.no=0;
this.alt=alt;

this.Add=AddBan;
this.Init=InitBan;
}
function AddBan(img,href,target,delai) {
var ban=new Object;
ban.img=img;
ban.href=href;
ban.target=target;
ban.delai=delai;
this[this.nb]=ban;
this.nb++;
}
function InitBan() {
var aff="";
if (document.images) { for(var i=0;i<this.nb;i++){var gif=new preload(this[i].img)}}
disp(aff+"<A href='javascript:tjsgo()'><IMG name='tjsimg' src='"+this[0].img+"' alt='"+this.alt+"' border='0'></A>");
setTimeout("rotation()",this[0].delai*1000);
}
function rotation() {
banniere.no++; var no=banniere.no; if (no>=banniere.nb) {banniere.no=0; no=0}
// alert(no+" "+banniere[no].img+" ------"+document.anchors["tjsban"].href)
document.images["tjsimg"].src=banniere[no].img;
setTimeout("rotation()",banniere[no].delai*1000);
}
function tjsgo() {
with(banniere[banniere.no]) {
if(target=="_blank"){window.open(href,"")} else {
if(target=="_top"){parent.window.location=href} else {
if(target=="_self"){window.location=href} else {
parent.frames[target].window.location=href}

}
}
}
}
function preload() {
this.length = preload.arguments.length;
for (var i = 0; i < this.length; i++) {
this[i+1] = new Image();
this[i+1].src = preload.arguments[i];
}
}

5 réponses

kichilibuz Messages postés 2 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 13 juin 2007 2
13 juin 2007 à 16:49
Merci de ta réponse, le souci c'est que je n'y connais rien en programmation ...
Petite précision sur ma question, j'aimerai conserver le .js exterieur aux sites pour ne pas avoir à repasser sur tous les sites et toutes les pages qui affichent la pub !

merci
Thibaut
2
Perso j'ai deja eu besoins de prendre un texte aleatoire dans ma base, c'est en php mais tu peux deja reprendre l'idée.
Voici le code :
$sql = "SELECT * FROM banderole;" ;
/*================//Lancement de la requete//===============*/
$req = mysql_query($sql) or die('Erreur SQL !');
$i = 0;
while($data = mysql_fetch_assoc($req))
    {
	//On crée un tableau contenant toutes les lignes disponibles pour la bandrolle
	$i++;
	$txt[$i] = $data['texte_bande'];
    } 
srand();//initialisastion du  nombre aléatoire
$rand = rand(1, $i);
$deroule = $txt[$rand];//Choix aléatoire du texte de la bandrolle


voila, en esperant que sa pourra t'aider
0
Bonsoir Thibaut,

Je suis (ou j'étais - je vais le savoir demain matin quand j'essayerai...) dans le même cas de figure que le tien. J'allais t'écrire pour te demander si tu avais trouvé une solution depuis le 13 juin dernier ? Cela m'intéresse... (surtout avec le js. extérieur) En tout cas provisoirement j'avais appliqué ton script pour gérer mes bannières. Et bien sûr cela fonctionne terriblement bien.

Je viens de trouver un lien qui nous donne la solution (avec un js.extérieur) : http://www.editeurjavascript.com/scripts/scripts_publicite_1_128.php

Cela doit fonctionner. J'en saurais plus demain matin car pour ce soir j'arrête de bosser...

En tout cas merci pour ton scrpt. Bernard
0
Bonjour,
merci pour cette info Bernard, j'avais un peu laissé tombé mon problème depuis le temps car je n'avais pas trouvé de solutions!
J'ai été regardé rapidement ton lien et ça m'a l'air pas mal du tout, je suis au taf donc pas le temps d'approfondir mais je test ça dès que je suis de retour chez moi !
Le résultat (si ça fonctionne, ce dont je ne doute pas!) serai même encore mieu que ma demande initiale dans le premier post, à savoir en plus d'être aléatoire à chaque changement de page, les bannières sont temporisées (comme dans mon script actuel).

Thanks à tous !
Thibaut
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je propose une solution alternative mais comme toi je suis très pauvre en terme de programmation...

rendre aléatoire l'affichage de tes bannières avec ton fichier pubassos.js, c'est de le transformer en plusieurs sous groupe pubassos 1 2 3 etc...

et de mettre dans dans ton pubassos.js principal, la fonction d'aller chercher un sous groupe pubassos aléatoirement...

petite remarque que j'aimerai résoudre, c'est l'affichage de plusieurs bannières avec ce script sur la même page... car il garde en memoire la page link de dernier script lu... et les bannières ne change pas non plus...
0