Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] Problem z obj.responseText
Forum PHP.pl > Forum > XML, AJAX > AJAX
kacperix
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.
UNK
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
g-4
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
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.