#javascript #php #jquery #ajax #authentication
#javascript #php #jquery #ajax #аутентификация
Вопрос:
Я добавил функцию ajax jquery для более удобного входа в систему, но она по-прежнему не работает. Что я делаю не так? Спасибо.
form_log.php увядающие головки:
<script type="text/javascript">
$(document).ready(function() {
$('#myform').submit(function() {
$.ajax({
type: "POST",
url: 'login.php',
data: {
username: $("#username").val(), //id
password: $("#password").val()
},
success: function(data)
{
if (data === 'Correct') {
window.location.replace('index.php');
}
else {
alert(data);
}
}
});
});
});
</script>
И в form_log.php html-тела:
<form id="myform">
<label for="username">Username</label>
<input type="text" id="username" value="waqmaz@gmail.com" />
<label for="password">Password</label>
<input type="text" id="password" value="Lol123" />
<input type="submit" id="login" value="Login"/>
</form>
Теперь login.php:
<?php
session_start();
require("funkcje_bazy.php");
//require('fff.php');
$lacz = lacz_bd();
$nazwa_uz_l = $_POST['username'];//nazwa_uz_l
$haslo_l = $_POST['password']; //haslo_l
$wynik = $lacz->query("SELECT * FROM uzytkownicy WHERE email='".$nazwa_uz_l."' AND haslo = '".$haslo_l."' AND aktywacja IS NULL ");
if($wynik->num_rows>0) {
$_SESSION['prawid_uzyt'] = $nazwa_uz_l;
echo ('Correct');
}
else
{
echo 'Incorrect username/password';
}
?>
В верхней части всех этих 2 файлов у меня есть session_start(); включая index.php .
Логин не работает. Когда я нажимаю «Отправить ввод», ничего не происходит. Я новичок в jquery ajax. Я проверяю правильные ответы, спасибо.
Комментарии:
1. Какие-либо ошибки в консоли ..?
2. На консоли нет ошибок.
3. какова ценность данных внутри успешного обратного вызова ..?
4. Я не понимаю. Мои данные: data: { username: $(«#username»).val(), //id password: $(«#password»).val() }, я ставлю waqmaz@gmail.com для ввода имени пользователя и Lol123 для пароля.
5. Вы включили свою библиотеку javascript (например, jQuery) в заголовок HTML?
Ответ №1:
Попробуйте предотвратить действие submit
кнопки по умолчанию с помощью event.preventDefault()
, что означает блокировку обратной отправки, которая вот-вот произойдет,
$('#myform').submit(function(e) {
e.preventDefault();
.
.
//rest of your code.
Комментарии:
1. Вау, это работает! Большое вам спасибо. Зачем мне нужно предотвращать дефолт?
2. @glapa.wojciech Поскольку мы собираемся выполнять обратную отправку через ajax, если мы не предотвратим действие по умолчанию, форма будет отправлена, как следствие, страница будет перезагружена.. И, кстати, рад помочь ..!
Ответ №2:
Альтернативой является использование:
$('#login').click(function() {