primo
11.04.2004, 15:07:54
Witam,
chciałbym zrobić sobie taki przepływający tekst, który najpierw wyświtlałby mi np. numery telefonów, następny news np. to co nowego pojawiło się w serwisie, a wszystko to poprzez tag <marque>, jednakże z wykorzystaniem php, w taki sposób aby każdy kolejny news byłby oddzielny i wyswietlany określoną liczbę razy. Przykładowo jak numery telefonów przelecą 8 razy, to zostanie wczytany drugi news, a pozniej nastepny i nastepny i znowu pierwszy...
z czego powinienem skorzystać

na co zwrócić uwagę

nakierujcie mnie troszkę proszę...
pozdrawiam
primo
Paul
11.04.2004, 15:25:42
jak chesz kontrolowac przez php ile razy to przelecialo jak to jest po stronie przegladarki... a po drugie w JS z tego co wiem nie ma konkretnie takiej opcji..
trzeba sobie radzic inaczej:
:arrow: 1. Umieszczasz to marquee w divie i przez JS zmieniasz zawartosc tego diva raz na jakis czas....
:arrow: 2. robisz to jako np. iframe i dajesz meta refresh i za kazdym refreshem bedzie ci sie zmieniac zmienna GET, na podstawie czego bedziesz wiedziec co juz przelecialo...
seaquest
11.04.2004, 15:36:49
temat raczej dotyczy js i html, wiec przenosze na XHTML, CSS i ECMAScript
primo
11.04.2004, 15:40:49
no ale jesli te pseudo newsy umiescilbym w bazie danych mysql to przeciez tez chyba jest jakis sposob przymusowego odswiezenia i umieszczenia nowego newsa pomiedzy znacznikami <marquee>
np:
$var = "Nowy numer telefonu 666666666";
[php:1:7d52eed069]<?php
echo <marquee> $var </marquee>
?>[/php:1:7d52eed069]
no a jesli zrobic to z pobraniem z bazy

czy nie tak mysle jak trzeba ?
eS...
11.04.2004, 16:14:50
[php:1:b8114d99af]<?php
$var = "Nowy numer telefonu 666666666";
echo "<marquee>". $var." </marquee>";
?>[/php:1:b8114d99af]
taki drobny szczegulik
Paul
11.04.2004, 16:17:04
robisz tak:
[php:1:4509aaf349]<?php
// robisz tablice $zawartosc_marquee, nie wazne czy dane bierzessz z bazy czy z czego...
$ilosc_elementow = count($zawartosc_marquee)-1;
$ktory = $_GET['ktory'];
if(!(is_numeric($ktory) && $ktory >= 0 && $ktory <= $ilosc_elementow)){
$ktory = 0;
}
echo '<html>
<head>
<meta http-equiv="Refresh" content="10; URL=marquee.php?ktory='.($ktory+1).'>
</head>
<body>
<marquee>'.$zawartosc_marquee[$ktory].'</marquee>
</body>
</html>';
?>[/php:1:4509aaf349]
primo
11.04.2004, 16:20:24
no już nie chcę się czepiać "szczegółów"
pomyślmy nad konkretami
Paul
11.04.2004, 16:26:49
Cytat
no już nie chcę się czepiać "szczegółów"
pomyślmy nad konkretami
no bardziej konkretnie sie nie da... napisaem ci gotowca wystarczy go zrozumiec i zastosowac
Dziala to na takiej zasadzie, ze odswieza strone co 10 sek (mozesz sobie zmienic) i za kazdym razem zwieksza wartosc zmiennej GET o 1, co powoduje zmienianie sie zawartosci marquee, ktora [zawartosc] jest tablica, a ta zmienna get poprostu wskazuje ktory jej element ma byc wyswietlony...
Prosciej nie umiem tego opisac
primo
11.04.2004, 17:06:58
to wszystko rozumiem i jest ok, ale jeszcze pytanko do tablicy:
to w niej mam umieścić poszczególne newsy ? czyli mam zrobic zmienna
$zawartosc_marquee i do niej przypisac rozne newsy
Paul
11.04.2004, 17:12:39
Cytat
ale jeszcze pytanko do tablicy:
to w niej mam umieścić poszczególne newsy
tak, np. w taki sposob:
[php:1:566d33b8b3]<?php
$zawartosc_marquee = explode('~~', 'news1~~news2~~news3~~news4');
?>[/php:1:566d33b8b3]
:arrow: poczytaj o [manual:566d33b8b3]explode[/manual:566d33b8b3]
primo
11.04.2004, 18:21:08
w tym miejscu podwójna tylda bedzie znakiem oddzialajacym poszczegolne newsy i news bedzie czytany od znaku poczatku do znaku tyldy

wszystko rozumiem tak jak nalezy

wiec biore sie za dokanczanie
Paul
11.04.2004, 21:25:53
jaknajbardziej dobrze rozumiesz
primo
12.04.2004, 08:07:35
[php:1:22fbe5c3ed]<?php
$news = "Teraz można rezerwować filmy telefonicznie. Nowy numer telefonu to <b>649-23-73</b>";
$news2 = "Nowości już na półkach: Ostatni samuraj";
$news3 = "Otwarcie nowego punktu";
$zawartosc_marquee = "$news~~.$news2~~.$news3";
$zawartosc_marquee = explode("~~", "$zawartosc_marquee");
$ilosc_elementow = count($zawartosc_marquee)-1;
$ktory = $_GET['ktory'];
if(!(is_numeric($ktory) && $ktory >= 0 && $ktory <= $ilosc_elementow)){
$ktory = 0;
}
echo '<html>
<head>
<meta http-equiv="Refresh" content="10; URL=marquee.php?ktory='.($ktory+1).'>
</head>
<body>
<marquee>'.$zawartosc_marquee[$ktory].'</marquee>
</body>
</html>';
?>[/php:1:22fbe5c3ed]
wszystko działa ale mały mankament: mianowicie wczytuje tylko i wyłącznie pierwszy news, nastepnie robi refresh i zas wczytuje pierwszy news, co w tym jest nie tak??
wojtek
12.04.2004, 08:58:00
Sprobuj tak:
[php:1:9881c5a85f]<?php
$ktory = (int) $_GET['ktory'];
$news = array();
$news[] = "Teraz można rezerwować filmy telefonicznie. Nowy numer telefonu to <b>649-23-73</b>";
$news[] = "Nowości już na półkach: Ostatni samuraj";
$news[] = "Otwarcie nowego punktu";
if (empty($news[$ktory])) {$ktory=0;}
echo '<html>
<head>
<meta http-equiv="Refresh" content="10; URL=marquee.php?ktory='.($ktory+1).'">
</head>
<body>
<marquee>'.$news[$ktory].'</marquee>
</body>
</html>';
?>[/php:1:9881c5a85f]
Paul
12.04.2004, 09:26:13
Oto działajacy, testowany kod:
[php:1:0ebd880edd]<?php
$zawartosc_marquee = "Teraz można rezerwować filmy telefonicznie. Nowy numer telefonu to
<b>649-23-73</b>~~Nowości już na półkach: Ostatni samuraj~~Otwarcie nowego punktu";
$zawartosc_marquee = explode("~~", $zawartosc_marquee);
$ilosc_elementow = count($zawartosc_marquee)-1;
$ktory = $_GET['ktory'];
if(!(is_numeric($ktory) && $ktory >= 0 && $ktory <= $ilosc_elementow)){
$ktory = 0;
}
echo '<html>
<head>
<meta http-equiv="Refresh" content="5; URL=marquee.php?ktory='.($ktory+1).'">
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
</head>
<body>
<marquee>'.$zawartosc_marquee[$ktory].'</marquee>
</body>
</html>';
?>[/php:1:0ebd880edd]
primo
12.04.2004, 20:29:32
wielkie dzię ki za pomoc, looknicie jak to działa... ze strony czysto technicznej tego skryptu to wszystko jest git, ale nie pomyslałem o małym mankamencie
http://divideo.com.pl/ mianowicie jak przykladowo przegladam zakladki nowosci to skrypt robi refresh i ponownie wraca do strony glownej czyli ustawionej w naglowku idex.php, jak zrobic cos takiego inteligentnego, aby on (skrypt) wiedzial ze ma tylko odswiezac ta tablice a nie cala strone i nie powracac do glownej
pozdrawiam
Paul
12.04.2004, 20:38:36
Proponuje zrobic ten caly pasek z ostatniej chwili jako ramke. Przy zmienianu podstron bedzie sie zmieniac tylko ta druga ramka.... Teraz to nie jest najlepsze rozwiazanie bo sie to odswieza co chwile...
to bedzie cos w tym stylu:
[xml:1:cb0afc7c34]
<frameset frameborder="0" framespacing="0" rows="20,*">
<frame name="z_ostatniej" src="marquee.php">
<frame name="text" src="text.php">
</frameset>
[/xml:1:cb0afc7c34]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.