PHP 応答を取得するために ajax を使用してフォームを取得する際に問題が発生しました。login_ajax.php のすべてを消去し、次のもののみを使用すると機能するため、javascript は正しいようです。
echo 'CORRECT'
//or
echo 'INCORRECT'
実際の php コードを使用すると、ajax は PHP から応答を受け取りません。削除するとさらに奇妙になります
return false
javascript からフォームを送信すると、ブラウザの login_ajax.php に正しいまたは正しくないものが表示されます。
HTML:
<form id="login" action='login_ajax.php' method="get">
<label>Email: <input type="text" name="email" id="email" value="nano@nano.com"></label>
<label>Password: <input type="text" name="password" id="password" value="x"></label>
<input type="submit" value="login">
<div id="straight_response">php response here</div>
<div id="message">status</div>
</form>
PHP:
if (isset($_GET['password'])) {
$email = $_GET['email'];
$password = $_GET['password'];
$stored_pass = "123";
if ($password == $stored_pass) {
echo "CORRECT";
} else {
echo "INCORRECT";
}
}
//Javascript works when using one of the two lines below instead of the code above
//echo 'INCORRECT';
//echo 'CORRECT'
ジャバスクリプト:
$('#login').submit(function(){
var email;
var password;
email = $('#email').val();
password = $('#password').val();
var data = {};
data.email = email;
data.password = password;
var options = {};
options.dataType = 'text';
options.type = 'get';
options.url= 'login_ajax.php';
options.success = function (response) {
// jQuery.trim(response);
console.log(response.results);
console.log(response.query);
$('#always').text(response);
if (response === 'CORRECT') {
$('#message').text('you got it right');
console.log("good combination");
}
else if (response === 'INCORRECT') {
$('#message').text('sorry, try again');
console.log("bad combination");
}
};
$.ajax(options);
return false;
});//#login function