Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [advAjax] response
Forum PHP.pl > Forum > XML, AJAX > AJAX
xarr
Hi, dopiero zaczynam sie bawić Ajaxem i napotkalem problemik.

Robie logowanie. $Auth->isAuth(); w index.php zwraca true/false w zaleznosci od tego czy user jest zalogowany, czy nie. Jak moge sie dobrać do tego true/false, czy tez innych wartosci zwracanych przez return z php poprzez advAjax?

Drugi problemik.
Robiac logowanie i ustalajac na przyklad, ze metoda odpowiadajaca za uwierzytelnianie $Auth->receive($login,$pass) zwraca echo 1 w przypadku sukcesu mam problem z odczytaniem tej wartosci z responseText. Gdy wyswietlam zawartosc responseText wywala mi caly dokument index.html, a wlasciwie .tpl, bo korzystam ze Smarty. Probowalem tez przesylac zmienna do smarty, ale nic to nie zmienilo.

Gdy bawilem sie na prostych przykladach wszystko dzialalo ladnie. Teraz kiedy probuje wdrozyc to w bardziej skomplikowany kod cos mi nie wychodzi.

Z gory dzieki za wskazowki i jesli problem byl juz poruszany na forum/google to sorki, ale nie zauwazylem. Troszke jeszcze po omacku poruszam sie w tych klimatach.

A oto jeszcze js:
  1. function formLogin() {
  2.  
  3. advAJAX.assign(document.getElementById("logowanie"), {
  4.  
  5. onInitialization : function(obj){
  6. obj.parameters["p"] = hex_md5(obj.parameters["p"]);
  7. document.getElementById("submitBtn").value = "Please wait...";
  8. },
  9.  
  10. onComplete : function(obj){
  11. document.getElementById("submitBtn").value = "Zaloguj";
  12. },
  13.  
  14. onSuccess : function(obj){
  15. alert(obj.responseText);
  16. if (obj.responseText == "1")
  17. alert("Access granted.");
  18. else
  19. alert("Access denied."+obj.responseText);
  20. document.getElementById("password").value = "";
  21. window.setTimeout("document.getElementById('password').focus();", 1200);
  22. },
  23.  
  24. onError : function(obj){
  25. alert("Could not establish connection to serwer. Please try later.");
  26. }
  27. }
  28. );
  29. }
TomASS
1.
Cytat
Robie logowanie. $Auth->isAuth(); w index.php zwraca true/false w zaleznosci od tego czy user jest zalogowany, czy nie. Jak moge sie dobrać do tego true/false, czy tez innych wartosci zwracanych przez return z php poprzez advAjax?

Robisz sobie jakiś plik, np. RTA_auth.php (RTA od Return To Ajax):
  1. <?php
  2. include('klasa.php');
  3. $Auth = new Auth();
  4. return $Auth->isAuth();
  5. ?>

i w pliku z Ajaxem dajesz sobie:

  1. function get_auth() {
  2. advAJAX.post({
  3. url : 'RTA_auth.php',
  4. onSuccess : function(obj) {
  5. if(obj.responseText=='1') alert('zalogowany');
  6. else alert('niezalogowany');
  7. }
  8. });
  9. }

Teraz wystarczy tylko wywołać funkcję JS get_auth() np. poprzez onClick.

2.
Cytat
Robiac logowanie i ustalajac na przyklad, ze metoda odpowiadajaca za uwierzytelnianie $Auth->receive($login,$pass) zwraca echo 1 w przypadku sukcesu mam problem z odczytaniem tej wartosci z responseText. Gdy wyswietlam zawartosc responseText wywala mi caly dokument index.html, a wlasciwie .tpl, bo korzystam ze Smarty.

Widocznie nie tylko zwraca Ci samą '1'. Najlepiej odpal ten plik "normalnie" - wpisując adres w przeglądarce i zobacz co jeszcze Ci wyświetla. Nie potrzebnie przekazujesz dane do Smarty. Skoro ma zwrócić tylko 1 lub 0 to po co jeszcze ma zawracać szablony?
xarr
Dzieki TomASS.

Co do odp.2 to chyba zle sie wyrazilem. W pliku .php jest dajmy na to wiele elementow jak nawigacja, logowanie, etc. Wszystko zalezne od requestow i jezeli jest rzadanie 'admin', to sprawdza, czy jest zalogowany, czy nie... i wyswietla stosowny .tpl. I wlasnie ten caly .tpl czyta tez responseText po zdarzeniu onclick w przypadku proby logowania. Mam juz jednak pare pomyslow, dzieki twojej odpowiedzi na 1 pytanie, jak sobie z tym poradzic, wiec sprobuje powalczyc.

Btw. nie znacie moze jakiegos frameworka, albo innego skryptu php mocno korzystajacego z AJAXa? Nie pure Ajax, tylko jednak ten mix php+ajax w zaawansowanych aplikacjach. Poki, co troche brakuje mi tej lekkosci w operowaniu js dzialajacym w oparciu o wyniki zwracane przez php i dlatego bede wdzieczny za jakis fajny przykladzik.
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.