Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] Problem z obj.responseText, nie działa warunek
kacperix
post 7.08.2006, 19:58:06
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 30.07.2006
Skąd: okolice Elbląga

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


Witam.

Mam taki kod:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  4. <title>Untitled Document</title>
  5. <script src="advajax.js" type="text/javascript"></script>
  6. <script type="text/javascript">
  7. function demo2() {
  8.  
  9. advAJAX.assign(document.getElementById("e2_form"), {
  10. onSuccess : function(obj) {
  11.  
  12. if (obj.responseText == "1")
  13. alert("Access granted."); else
  14. alert("Access denied.");
  15. }
  16. });
  17. }
  18. </head>
  19.  
  20. <body onload="demo2()">
  21. <form id="e2_form" action="check.php" method="post">
  22. <input type="text" name="username" />
  23. <br />
  24. <input type="submit" value="OK" />
  25. </form>
  26. </body>
  27. </html>


No i jak wiadomo przesyla on dane do pliku check.php W pliku check.php jest taki kod:

  1. $stmt = $pdo -> query("SELECT * FROM users WHERE user_login = '".$_POST[username]."'");
  2. $rows = count($stmt->fetchAll());
  3. $stmt -> closeCursor();
  4. if ($rows == 1) {
  5. echo 1;
  6. } else {
  7. echo 1;
  8. }


Polega on na sprawdzeniu czy w bazie istnieje użytkownik i wyświtleniu odpowiedniego komunikatu. Mój problem tkwi w tym, że zawsze wyświtla komunikat negatywny, tak jakby nie było użytkownika. W jaki sposób należy zwrócić w pliku check.php tą cyfrę 1 aby w istrukcji warunkowej AJAX-a został wyświetlony komunikat pozytywny.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
UNK
post 8.08.2006, 06:21:24
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 5
Dołączył: 30.04.2006
Skąd: Gliwice

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


Sprawdź czy z bazy pobierany jest jeden rekord

  1. $rows = count($stmt->fetchAll())
  2. ...
  3. if ($rows == 1) {


Po prostu sprawdź jaka wartość przypisana jest do $rows.

  1. if ($rows == 1) {
  2. echo 1;
  3. } else {
  4. echo 1; //
  5. }


W obu przypadkach masz 1, czyli nie ważne czy osoba jest czy nie pokaże Ci że osoba istnieje.

Na razie innych spostrzeżeń nie mam
Go to the top of the page
+Quote Post
g-4
post 9.08.2006, 23:01:50
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.08.2004

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


wpisz w przegladarce ../check.php i sprawdz w źródle strony czy masz tylko "1", jesli bedzie cos wiecej to wlasnie w tym tkwi problem, przynajmniej takmi sie wydaje. Mialem podobny problem, poniewaz zawsze na koncu strony tworzyla sie stopka do statystyk i przez to nie dzialalo obj.responseText , aby pozbyc sie tego problemu napisalem tworzenie XML i wszystko bylo dobrze

Ten post edytował g-4 9.08.2006, 23:05:06
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: 24.07.2025 - 21:18