Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Formularz + php +przekierowanie (return true); ?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
arkoslaw
Cześć, mam problem z formularzem logowania napisanym w jQuery, a dokładniej: chodzi mi o przekierowanie do następnej strony. Postawiłem warunek który pobiera z pliku php wartość ale nie wiem jak mam zrobić, żeby pobrać "header" z php?

Kod wygląd mniej więcej tak(nie moge wstawic dokladnie mojego kodu):
[JAVASCRIPT] pobierz, plaintext
  1.  
  2. $('#wyszukiwarka').live('submit', function(e){
  3. e.preventDefault();
  4.  
  5. $.ajax({
  6. type: "POST",
  7. url: $(this).attr('action'),
  8. data: "$(this).serialize(),
  9. success: function(msg){
  10. $("#result").html(msg);
  11. }
  12. });
  13. return false;
  14. });
  15.  
[JAVASCRIPT] pobierz, plaintext

dane pobiera z php(maly wycinek):
  1. if ($zapytanie == "1") {
  2. $_SESSION['user'] = $_POST['login'];
  3. header('Location: index_A.php');
  4. $_SESSION["zalogowany"]=1;
  5. exit();
  6. }
  7. if ($zapytanie == "0") {
  8. $_SESSION['user'] = $_POST['login'];
  9. header ('Location: index_U.php');
  10. $_SESSION["zalogowany"]=2;
  11. exit();
  12. }
  13. }
  14. if ($status == "0"){
  15. die ('Błędny login lub hasło!');
  16. exit();
  17. }

Bledy oczywiscie elegancko wyswietla w pojawiajacym sie okienku, jest od tego fucntion(msg)
ale tez w tym okienku pjawia sie strona... sciana.gif Probowalem z window.location ale nie wiem jaki postawic warunek i jak pobrac zmienna z php odpowiadajaca za przekierowanie na strone uzalezniona od sesji.

Jak widać godzina już jest dość późna wiec widzicie, że mi zależy na uzyskaniu odpowiedzi;) A może tak eRix pomoże wstydnis.gif
Chodzi mi mniej wiecej o taki warunek:
[JAVASCRIPT] pobierz, plaintext
  1. if(zmienna_z_php ==1){
  2. przekieruj_do_strony_admina; return true;
  3. }else{ if(zmienna_z_php==0){
  4. przekieruj_do_strony_dla_zwyklego_usera; return true; ?
  5. }else {
  6. $('.klasa').show(). ---pokazuje bledy w okienku
  7. return false;
[JAVASCRIPT] pobierz, plaintext

vokiel
Jeśli chcesz przekierować w js to możesz użyć location.href.

Jednak zastanawia mnie sens stosowania ajaxja jeśli i tak robisz przekierowanie. Wtedy cała szopka z ajaxem jest niepotrzebna. Co innego, jakbyś tylko zmieniał jakieś elementy na stronie, a reszta by pozostawała jak jest.

Tak czy inaczej nie połączysz headera z php z js. Możesz co jedynie zwrócić do js informacje, że taki hedaer powinien nastąpić i w js przeładować stronę.

Czyli np:
  1. if ($zapytanie == "1") {
  2. $_SESSION['user'] = $_POST['login'];
  3. $_SESSION["zalogowany"]=1;
  4. echo 'index_A.php';
  5. }
  6. // jeśli błąd logowania to zwracasz np
  7. echo 1; // błąd nr 1 - błąd logowania
  8. echo 0; // błąd nr 2 - brak loginu etc


[JAVASCRIPT] pobierz, plaintext
  1. $.ajax({
  2. type: "POST",
  3. url: $(this).attr('action'),
  4. data: $(this).serialize(),
  5. success: function(msg){
  6. var messages = Array('Brak loginu','Błąd logowania');
  7. if (msg.length<2){
  8. $("#result").html(messages[msg]);
  9. }else{
  10. location.href = msg;
  11. }
  12. }
  13. });
[JAVASCRIPT] pobierz, plaintext
arkoslaw
Dzięki wielkie Vokiel, dokładnie o to mi chodziło. Komunikaty o błędach są wyświetlane na tej samej stronie, czyli po stronie przeglądarki a po poprawnym wpisaniu loginu i hasla przenosi do nastepnej stronki. Nie mam pojęcia jak to przejście mogło by wyglądać inaczej dlatego zostaje przy twoim kodzie, dzięki i pozdrawiam;)
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.