Autor | Zpráva | ||
---|---|---|---|
TomasRe Profil |
#1 · Zasláno: 2. 2. 2015, 14:55:59
Můžete mi prosím někdo poradit, co dělám špatně při vkládání proměnných do javascriptu? Script by měl měnit obrázky v časovém intervalu s odkazem a popiskem
// <![CDATA[ var imgs1 = new Array(<?php $vysledek = mysql_query("SELECT * FROM `banner` WHERE `aktivni`!=0 ORDER BY `poradi` ASC"); $i=1; while ($zaznam = mysql_fetch_array($vysledek)): if ($i==1) $obraz="\"./img/banner/".$zaznam["obr"]."\""; else $obraz =",\"./img/banner/".$zaznam["obr"]."\""; echo $obraz; $i++; endwhile; ?>); var lnks1 = new Array(<?php $vysledek = mysql_query("SELECT * FROM `banner` WHERE `aktivni`!=0 ORDER BY `poradi` ASC"); $i=1; while ($zaznam = mysql_fetch_array($vysledek)): if ($i==1) $urel="\"".$zaznam["url"]."\""; else $urel =",\"".$zaznam["url"]."\""; echo $urel; $i++; endwhile; ?>); var alt1 = new Array(<?php $vysledek = mysql_query("SELECT * FROM `banner` WHERE `aktivni`!=0 ORDER BY `poradi` ASC"); $i=1; while ($zaznam = mysql_fetch_array($vysledek)): if ($i==1) $titel="\"".$zaznam["title"]."\""; else $titel =",\"".$zaznam["title"]."\""; echo $titel; $i++; endwhile; ?>); var title1 = new Array(<?php $vysledek = mysql_query("SELECT * FROM `banner` WHERE `aktivni`!=0 ORDER BY `poradi` ASC"); $i=1; while ($zaznam = mysql_fetch_array($vysledek)): if ($i==1) $titel="\"".$zaznam["title"]."\""; else $titel =",\"".$zaznam["title"]."\""; echo $titel; $i++; endwhile; ?>); var currentAd1 = 0; var imgCt1 = 2; function cycle1() { if (currentAd1 == imgCt1) { currentAd1 = 0; } var banner1 = document.getElementById('adBanner1'); var link1 = document.getElementById('adLink1'); banner1.src=imgs1[currentAd1]; banner1.alt=alt1[currentAd1]; banner1.title=title1[currentAd1]; document.getElementById('adLink1').href=lnks1[currentAd1]; currentAd1++; } window.setInterval("cycle1()",8000); // ]]> |
||
juriad Profil |
<script> var pole = <?php $vysledek = mysql_query("SELECT * FROM `banner` WHERE `aktivni` != 0 ORDER BY `poradi` ASC"); $pole = array(); while ($zaznam = mysql_fetch_assoc($vysledek)) { $pole[] = $zaznam; } echo json_encode($pole); ?>; // A tady máš v JS proměnnou pole, která obsahuje pole objektů. </script> |
||
TomasRe Profil |
#3 · Zasláno: 2. 2. 2015, 15:12:29
juriad:
Moc děkuju, jen se tedy zeptám - var pole platí pro všechny proměnné ve scriptu? Jak potom přiřadím, že tato hodnota je url, tato je title? |
||
juriad Profil |
To PHP ti vrátí něco jako:
[{"title":"titulek","obr":"obr1.jpg"},{"title":"druhy titulek","obr":"obr2.jpg"}] function cycle() { baner1.src = "./img/banner/" + pole[currentAd1].obr; baner1.title = pole[currentAd1].title; ... currentAd = (currentAd + 1) % pole.length; // a nepotřebuješ proměnnou imgCt1 ani ten if. } |
||
TomasRe Profil |
#5 · Zasláno: 2. 2. 2015, 15:26:18
juriad:
Já se omlouvám, javascriptu vůbec nerozumím. Můžu poprosit tedy o dokopnutí, jak to má být správně? <script> var pole = <?php $vysledek = mysql_query("SELECT * FROM `banner` WHERE `aktivni` != 0 ORDER BY `poradi` ASC"); $pole = array(); while ($zaznam = mysql_fetch_assoc($vysledek)) { $pole[] = $zaznam; } echo json_encode($pole); ?>; </script> <script> function cycle() { baner1.src = pole[currentAd1].url; baner1.title = pole[currentAd1].title; currentAd = (currentAd+1) %pole.length; } </script> <p><a id="cycle" href="" target="_blank"><img id="cycle" title="" src="../img/banner/1.jpg" alt=""></a></p> |
||
juriad Profil |
#6 · Zasláno: 2. 2. 2015, 15:48:40
Stačí takto?
http://kod.djpw.cz/ubkb |
||
TomasRe Profil |
#7 · Zasláno: 2. 2. 2015, 16:02:12
juriad:
Bohužel mi to stále nefunguje. Opravdu se omlouvám a nedělám to schválně... Chci se vyvarovat toho, že to tam právě vypíšu. A pomocí načtení z databáze mi to také nefunguje. |
||
TomasRe Profil |
juriad:
Furt to studuji a ostatní řádky jsou mi jasné, jen pořád nevím, jak vyplním data z var pole = <?php $vysledek = mysql_query("SELECT * FROM `banner` WHERE `aktivni` != 0 ORDER BY `poradi` ASC"); $pole = array(); while ($zaznam = mysql_fetch_assoc($vysledek)) {$pole[] = $zaznam;} echo json_encode($pole); ?> do var banners = [{"url":"http://www.google.cz","target":"_blank","title":"google","obr":"1.jpg"},{"url":"url","target":"_blank","title":"druhy titulek","obr":"2.jpg"}]; |
||
juriad Profil |
#9 · Zasláno: 2. 2. 2015, 18:15:25
To už ten PHP kód dělá. Podívej se do zdrojového kódu stránky. Přesně to
[{...}, {...}, {...}] tam uvidíš.
|
||
TomasRe Profil |
#10 · Zasláno: 2. 2. 2015, 18:25:26
juriad:
Jj, už to vidím že mi to vypíše, ale když mám var banners = <?php $vysledek = mysql_query("SELECT * FROM `banner` WHERE `aktivni` != 0 ORDER BY `poradi` ASC"); $banners = array(); while ($zaznam = mysql_fetch_assoc($vysledek)) {$banners[] = $zaznam;} echo json_encode($banners); ?> tak se mi stejně nic nemění... :( |
||
mimochodec Profil |
#11 · Zasláno: 2. 2. 2015, 18:29:40
TomasRe:
A chyba je v php nebo v JS? Ve vygenerovaném js to vidíš nebo ne? |
||
TomasRe Profil |
#12 · Zasláno: 2. 2. 2015, 18:41:41 · Upravil/a: TomasRe
mimochodec:
už jsem to našel - já měl ten druhý banner zastopovaný :-(. Strašně se omlouvám... juriad: Moc děkuji za pomoc i trpělivost. Opravdu moc díky... |
||
Časová prodleva: 9 let
|
0