私のウェブサイトには、なんとなく不思議な問題があります。それを整理しようとしてから2日が過ぎた後、私はまだ何が間違っているかを見つけ出すことができませんでした。Ajaxは私のウェブサイト全体でぼんやりと働いていました
最近、私のajax
コードが正常に動作していないことがわかりました。それが魅力のように働く前に。 PHP
function emptyElement(x){
_(x).innerHTML = "";
}
function login(){
var e = _("email").value;
var p = _("password").value;
if(e == "" || p == ""){
_("status").innerHTML = 'Please fill out all the form data.';
} else {
_("loginbtn").style.display = "none";
_("status").innerHTML = 'Loading...';
var ajax = ajaxObj("POST", "login.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText == "login_failed"){
_("status").innerHTML = 'Login unscuccessful';
_("loginbtn").style.display = "block";
} else {
window.location = "xxxx";
}
}
}
ajax.send("e="+e+"&p="+p);
}
}
次のとおりです:
if(isset($_POST["e"])){
include_once("php_includes/db_conx.php");
$e = mysqli_real_escape_string($db_conx, $_POST['e']);
$e = strtolower($e);
$p = md5($_POST['p']);
$ip = preg_replace('#[^0-9.]#', '', getenv('REMOTE_ADDR'));
if($e == "" || $p == ""){
echo "login_failed";
exit();
} else {
$query = mysqli_query($db_conx,"SELECT id, username, password FROM users WHERE email='$e' AND activated='1' LIMIT 1");
$row = mysqli_fetch_row($query);
$db_id = $row[0];
$db_username = $row[1];
$db_pass_str = $row[2];
if($p != $db_pass_str){
echo "login_failed";
exit();
} else {
//set cookies and log user in
}
}
exit();
}
が、フォーム
は、次のとおりです:
<form class="registration-form" name="signupform" onsubmit="return false;">
<input type="text" onfocus="emptyElement('status')" placeholder="Email" id="email" autofocus>
<input type="password" onfocus="emptyElement('status')" placeholder="Password" id="password">
<button type="submit" id="loginbtn" onclick="login()" >Log in!</button>
<div id="status"></div>
</form>
はJSに従うここに私のオンラインコミュニティからログインスクリプトの例です。フォームのphp
が動作していて、すべての値が正しい場合、ユーザーはログインしていますが、 ajax
は、上記のコードのように、ステータスやローディングメッセージを表示していません。
スクリプト以外で変更されたものはありません。以前のようにページの上部にはまだajax.js
とjquery
が含まれています。
これは単なる一例です。私が人々を登録させるために使用するフォームは、このウェブサイトと同じで、私のウェブサイトの他のajax
フォームと同じように、同じ問題を抱えています。
何が問題なのですか?
コンソールからのヒント? –
ChromeでJavaScriptコンソールを開くと(F12キーを押す)、ページの表示時にエラーが表示されますか?あなたのJSの小さな構文エラーは、それがすべて一緒に働くのを止めることができます。 – Jaco
コンソールをチェックすると、そこに何かがあるかもしれません。 – Majid