Przekierowanie po alercie js


(Ingramkalina) #1

Witam,

Mam problem z przekierowaniem w js po alercie. Mianowicie napisałem długą stronę i mam tam mnóstwo if'ów.

oto jeden z nich:

$add = $_GET['dodaj'];

if($add == 'zespol') {

}

Mój problem polega na tym, że na 1 może dwóch if'ach przekierowanie po alercie działa ale na reszcie nie.

Alert i przekierowanie wygląda tak:

echo "

window.alert('Dodałeś ten zespół do ulubionych');

";

echo "

setTimeout(function(){

window.location.href = 'post.php?dyskusja=piosenki&id_zespolu='.$id.'';

},0);";

Z góy thx za pomoc.


(Pablo_Wawa) #2

Mam pytanka:

  1. Dlaczego rozdzieliłeś obie części kodu JavaScript? Być może to jest powód ich niezależnego wywołania i złego działania strony?

  2. Dlaczego w PHP “obce wstawki” kodujesz przy pomocy echo, zamiast zamknąć znacznik “?>”, wstawić właściwy kod - tu skrypt w JS (jest to o wiele czytelniejsze) - a potem znów otworzyć znacznik “<?php”?

  3. Dlaczego w drugiej części używasz funkcji setTimeout z opóźnieniem 0 - czyli natychmiastowe uruchomienie - nie lepiej (i prościej) jest użyć bezpośredniej konstrukcji? No chyba, że chcesz dać opóźnienie przekierowania, to podajesz wartość w milisekundach.


(Ingramkalina) #3

Dzięki wielkie.

Nie sądziłem, że takie drobnostki mają aż takie znaczenie.

Odp. na pytanie nr 1.

Rozdzieliłem te dwie części kodu, ponieważ inaczej nie chciały działać.

oto kod jak by ktoś chciał:


(cinkibolek) #4

To nie ma znaczenia czy to będzie w dwóch osobnych tagach script.

Teraz działa to tak, że alert tylko blokuje do czasu jego zamknięcia odświeżenie strony, ale skrypt się wykonuje migiem cały, razem z tym location.href.

Równie dobrze może to być tak