Autor Zpráva
blue
Profil *
tak. můj problém:
mám php pole obrázků, zde je výpis kódu:

<?php

$images = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15 ","17","18","19","20","21","22");
$min=date("i")/2;
$sec=date("s")/6;
$sec=explode(".",$sec);
$pic=$sec[0];
$min=explode(".",$min);
if($min[1] == "") {
$pic=$pic+10;
}

?>
<div id="main_img">
<img alt="hlavní obrázek" class="img_main" src="img/menu/img<?php echo $images[$pic]; ?>.jpg">
</div>

--konec--
a chci aby se těch 22 obrázků měnilo pomocí časovače dělaného v js., tzn. za třeba 10 sekund by se na obrazovce obrázek změnil v jiný.. náhodně.
jak to mám udělat a není lepší to celé udělat v .js a jak? naléhavě prosím
PerToon
Profil
PHP se zpracuje před odesláním do počítače, javascript až v počítači = nemůžeš javascriptem časovat php... takže to udělat v JS.
blue
Profil *
a nevíš jak prosím? (nej by byl kód..)
fajzen
Profil *
Úspešne som otestoval tento kód:

<script language="JavaScript">
var ktory= 0; //premenna, ktora sluzi ako casovac

function men() {
ktory += 1;

if (ktory== 4) //ak sa dostane mimo rozsah obrazkov, skoci na zaciatok- treba nastavit na (pocet_obrazkov + 1)
ktory= 1;
if (ktory== 1)
document.getElementById('niekde').innerHTML= '<img src=sm/1.gif>'; //upraviť cesty a názvy obrázkov!
if (ktory== 2)
document.getElementById('niekde').innerHTML= '<img src=sm/2.gif>';
if (ktory== 3)
document.getElementById('niekde').innerHTML= '<img src=sm/3.gif>';
//atd

setTimeout('men()', 10*1000); //vola samu seba o 10 sekund neskor
}

setTimeout('men()', 0); //pri jednoduchom volani funkcie men(); to nefunguje (???)
</script>

potom niekde na stránke použiješ niečo ako:

<span id="niekde"></span> <!-- TU sa budu zobrazovat obrazky--->

nemusí to byť zrovna span, lepší je <div>, lebo mu môžeš nastaviť rozmery, dôležité je však zachovať id (alebo ho zmeniť aj v skripte...)

ak sa ti nepáči, že funkcia men() volá samú seba (až dvakrát!), nahraď obe volania jedným:
window.setInterval ('men()', 10*1000)
ale musíš počítať s dvomi vecami:
1. prvých 10 sekúnd sa nič nezobrazí (jedine že by si tam vložil nejaký obrázok ako defaultný- medzi tagy <span> a </span>, čož je aj lepšie- čo ak má niekto zakázaný JS)
2. myslím, že niektoré staršie verzie prehliadačov nepodporujú setInterval...

Myslím, že to by mohlo byť asi všetko :)
tiso
Profil
Kedysi dávno som to niekde videl - niekto gumoval a opäť písal číslice...

analógové hodiny: http://interval.cz/clanky/analogove-hodiny-pomoci-javascriptu/
Toto téma je uzamčeno. Odpověď nelze zaslat.