Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX][PHP] AJAX nie działa
Forum PHP.pl > Forum > Przedszkole
Ivanowski
Witam. Chciałem utworzyć logowanie za pomocą AJAX, lecz nie wiem w czym blad
strona html+js:
  1. <form method="POST" action="java script:true">
  2. <div class="box-form"> Login: <input type="text" name="login" placeholder="Login" id="login_field" /> </div>
  3. <div class="box-form"> Hasło: <input type="password" name="password" placeholder="Hasło" id="password_field"/> </div>
  4. <button id="btn-login">ZALOGUJ</button>
  5. </form>
  6. $( "#btn-login" ).click(function(){
  7. $.ajax({
  8. type : "POST",
  9. url : "login.php",
  10. data : {
  11. login : $("#login_field").val(),
  12. password : $("#password_field").val()
  13. },
  14. success : function(msg) {
  15. $("#komunikat-zone").innerHTML = msg;
  16. }
  17. });
  18. });

login.php:
  1. <?
  2. $login = $_POST["login"];
  3. $password = $_POST["password"];
  4.  
  5. if(!empty($login)) {
  6. if(!empty($password)) {
  7. $baza = new mysqli('','','','');
  8. $selectLogin = $baza->query('SELECT login FROM admins WHERE login="'.$login.'"');
  9. $wynik = mysqli_fetch_array($selectLogin);
  10. if($wynik[0] == $login) {
  11. $selectPassword = $baza->query('SELECT password FROM admins WHERE login="'.$login.'"');
  12. $wynik = mysqli_fetch_array($selectPassword);
  13. if($wynik[0] == $password) {
  14. echo 'zalogowano!';
  15. }else{echo 'Nieprawidłowy login lub hasło!';}
  16. }else{echo 'Nieprawidłowy login lub hasło!';}
  17. }else{echo 'Uzupełnij pola!';}
  18. }else{echo 'Uzupełnij pola!';}
  19. ?>

Sam kod PHP działa.
Turson
Wysylasz poprawne dane? Sprawdź nagłówki. Co mówi konsola?
http://turson.pl/blog/jquery-ajax-analiza-...rkowej-konsoli/
Ivanowski
"Uncaught ReferenceError: $ is not defined"
Ale mam biblioteke JQuery:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
i próbowałem też z pliku.
A gdy dodam:
$('#box').hide();
działa.

Ten błąd był nie ze skryptu z AJAX'em więc dalej nie wiem o co chodzi
Turson
Masz wczesniej podlaczone jQUery zanim wywolujesz skrypt?
Ivanowski
Tak mam:
Header -> Jquery
Form
Script AJAX
Turson
Nie masz tam jeszcze innym bibliotekek js? Mogą one się gryźć z jQuery.
Daj link do demo jak masz
Ivanowski
Nie mam żadnych innych script / bibliotek
Turson
Przede wszystkim akcja onclick na przycisku/linku powinna mieć
Kod
return false;

na końcu skryptu. Zapobiega to wysyłaniu się automatycznym formularza jak jest to teraz.
Ivanowski
Nadal nie działa. Ale czy gdy w formie podamy action="java script:true" to już return false jest automatycznie "zrobione" ? Próbowałem obejrzeć filmiki róznych osób i mają tylko java script:true i napisane prawie tak samo kod jquery jak ja.
viking
Skoro masz wszedzie jquery to po co jakieś returny. jest preventDefault(). Na stronie którą podałeś brakuje plików.
Ivanowski
Plików Jquery? Jakich ?

juz wiem. ale tam nic nie bylo z AJAXem itp. Usunąłem i dalej nie działa smile.gif
viking
Odpowiedź jest zwracana. Wstaw jeszcze dataType na html. I script masz poza body.
trueblue
Obsługując obiekt jQuery używaj metody html(), obiekt jQuery nie ma właściwości innerHTML.
Ivanowski
Wiem o tym, sprawdzałem czy może to zadziała smile.gif
trueblue
Sprawdź jaki obecnie argument przekazujesz do metody html().
Ivanowski
Jak mam to zrobić?
trueblue
Zamiast .html() wstawić .html(msg).
Przecież chcesz ustawić treść komunikatu, który jest w zmiennej msg...
Ivanowski
Faktycznie... zapomnialem dopisać smile.gif I nic...
trueblue
$("#komunikat-zone").html(msg

Staraj się wyszukiwać literówki zanim umieścisz post.
Ivanowski
Też akurat zauważyłem. Wcześniej miałem tak samo i nie działało. A literówka pojawiła się po zmianie kodu. Popatrz na pierwszy post. Dziękuje za pomoc.
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.