All'interno di una classe php ho estrapolato due array, uno contenente l'indirizzo dell'immagine e un altro il link a cui si riferisce. Con questi parametri devo costruire un banner a rotazione delle immagini (casuale o in sequenza come è nell'array, non ha importanza).
$link[$i]=$row["link"]; //link per ogni immagine
$src[$i]=$row["img"]; //path per ogni immagine
Non sono pratico di javascript, ma con le funzioni ci lavoro e quindi ho estrapolato da un esempio una funzione di JS che potrebbe servire:
Codice PHP:
function rotateIt(){
sponsorctr=(sponsorctr<sponsor_nr-1?sponsorctr+1:0);
document.images[ad].src=im[sponsorctr].src;
if (document.getElementById){
document.getElementById('a').innerHTML=msg[sponsorctr];
}
tmr=setTimeout("rotateIt()",+timerot);
}
dove sponsor_nr è il numero totale dei banner e timerot è definito come:
var timerot = 5000;
Come faccio a far interagire questa funzione con gli array php?
NB: metto qui sotto l'intero esempio da cui ho estrapolato questa funzione JS, nel caso servisse per chiarimenti:
Codice PHP:
<script type="text/javascript" language="JavaScript">
<!--
var bannerwidth = 468;
var bannerheight = 60;
var sponsor_nr=4;
var folder="banner/";
var sfx='.gif';
var timerot = 5000;
var sponsorctr=0;
var halt=0;
im=new Array();
for (i=0;i<sponsor_nr;i++){
im[i]=new Image();
im[i].src=folder+i+sfx;
}
var dest=new Array();
dest[0]="http://corsi.html.it";
dest[1]="http://freephp.html.it";
dest[2]="http://newsletter.html.it";
dest[3]="http://corsi.html.it";
var msg=new Array();
msg[0]="Messaggio per Corsi.html.it etc etc etc etc...";
msg[1]="Messaggio per Freephp.html.it etc etc etc etc...";
msg[2]="Messaggio per Newsletter.html.it etc etc etc etc...";
msg[3]="Messaggio per Corsi.html.it etc etc etc etc...";
function rotateIt(){
if (halt!=1){
sponsorctr=(sponsorctr<sponsor_nr-1?sponsorctr+1:0);
document.images[ad].src=im[sponsorctr].src;
if (document.getElementById){
document.getElementById('a').innerHTML=msg[sponsorctr];
}
tmr=setTimeout("rotateIt()",+timerot);
}
}
function lightIt(){
halt=0;
window.status="Visitati "+dest[sponsorctr];
if (tmr!=""){
clearTimeout(tmr);
}
}
function dimIt(){
halt=0;
window.status="";
rotateIt();
}
function dumpIt(){
halt=1;
sponwin=window.open(dest[sponsorctr],'','');
}
function wrtIt(){
document.write('<TABLE BORDER="0" WIDTH="'+bannerwidth+'" align="center"><TR><T'
+'D>[img]+folder+[/img]<A HREF=sponsor'
+'.html onMouseover=lightIt() onMouseOut=dimIt() onClick="dumpIt'
+'();return false;">[img]+folder+[/img]
<DIV ID=a><ILAYER ID=b><LAYER ID=c><IMG SRC='
+folder+'shim.gif WIDTH='+bannerwidth+' HEIGHT='+bannerheight+'></LAYER></ILAYER></DIV></A></'
+'TD></TR></TABLE>');
}
function getImgAdd(){
for (var i=0;i<20;i++){
if (document.images[i].src.indexOf(folder+'shim.gif')>-1){
ad=i+1;
i=20
}
}
}
//-->
</script>
Le funzioni sono così richiamate:
Codice PHP:
<div align="center">
<SCRIPT language=JAVASCRIPT>
<!--
wrtIt();
getImgAdd();
sponsorctr=Math.floor((sponsor_nr*Math.random()));
rotateIt();
// -->
</SCRIPT>
</div>