Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]&[js] automatyczne przekierowanie, Jak wstawić dobrze kod js w echo?
-Wieviór-
post 11.09.2007, 10:56:20
Post #1





Goście







Używam czegoś takiego by automatycznie przekierowywać albo odświeżać stronę:

  1. <?
  2. echo '...';
  3. ?><script>setTimeout('document.location = "strona.php"', 1000);</script><?
  4. echo '...';
  5. ?>


No i niby pięknie, bo działa zupełnie poprawnie i uzyskuję to co chcę, ale chciałbym pozbyć się tego wychodzenia i wchodzenia w php z pomocą <? i ?>.
Chodzi głównie o estetykę kodu, probowałem wstawić ten <script> w echo, tyle że przy tym pierwszym pojedynczym cudzysłowie gubi się PHP, natomiast jeśli tam wstawię podwójny, to JS się nie podoba. :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Cysiaczek
post 11.09.2007, 11:06:00
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Escape'uj cudzysłowia, lub apostrofy.
  1. <?php
  2. print "<script>setTimeout('document.location = \"strona.php\"', 1000);</script>";
  3. ?>


Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
-Wieviór-
post 11.09.2007, 11:09:15
Post #3





Goście







Kiedyś już probowałem Escape'ować, ale wtedy probowałem apostrofy i nie wychodziło. Nie pomyślałem o robieniu echo "": zamiast echo '';

Sprytnie. Wielkie dzięki! ;]

EDIT: Sprawdziłem teraz i udało mi się z echo '';. Musiałem coś źle robić wtedy. Dzięki jeszcze raz ;]

Ten post edytował Wieviór 11.09.2007, 11:10:28
Go to the top of the page
+Quote Post
Cysiaczek
post 11.09.2007, 11:11:32
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Escape'uje się zawsze te znaczki, którymi otoczona jest konstrukcja echo lub print. Jeśli masz print " to escapujesz ", jeśli masz apostrofy, to escapujesz apostrofy. snitch.gif


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
qqrq
post 11.09.2007, 11:52:28
Post #5





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


A nie lepiej to zrobić TAK? Jeśli ktoś sobie w przeglądarce wyłączy JS, to strona nie będzie się odświeżać, a tak zawsze.


--------------------
Go to the top of the page
+Quote Post
-Wieviór-
post 11.09.2007, 12:03:04
Post #6





Goście







@qqrq: Na pewno lepiej, ale nie w moim przypadku, przeładowuję w środku strony i nie chcę się bawić w odwoływanie się do <head></head> ;]
Go to the top of the page
+Quote Post
qqrq
post 11.09.2007, 12:06:34
Post #7





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Wieviór => Tzn. Twój kod JS ma być wywoływany wraz z jakimś zdarzeniem? Co to znaczy "w środu strony"? Masz dużo includowanych plików i nie chce Ci się szukać w index'ie i robić warunków? smile.gif


--------------------
Go to the top of the page
+Quote Post
-Wieviór-
post 11.09.2007, 12:36:13
Post #8





Goście







Robię to przekierowanie przy logowaniu, czyli tak - z jakimś zdarzeniem, odwoływać się do head mi się po prostu nie chce biggrin.gif
Go to the top of the page
+Quote Post
bmL
post 11.09.2007, 14:27:17
Post #9





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Nie jest to zgodne z żadnymi standardami ale przekierowanie <meta> możesz umieścić w każdym miejscu na stronie.
Ale moim zdaniem najlepszy sposób to buforowanie ob_start() + ob_end_flush() + header(Location:....).


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
-Gość-
post 19.09.2007, 10:55:44
Post #10





Goście







Zrób tak
<?

echo "<script>setTimeout('document.location = \"strona.php\"', 1000);</script>";

?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:03