私がやろうとしていることから始めます。
ユーザーがメールアドレスを入力すると、(正しい場合) リセットリンクが記載されたメールが送信される「パスワードを忘れた」システムを作成しました。
入力された電子メールがデータベースにあるかどうかを検出するフォーム ページに ajax の小さなセクションがあります。メールがデータベースに存在する場合、フォームの色が緑色に変わり、送信ボタンが有効になります。電子メールが検出されない場合、フォームは赤色のままになり、送信ボタンは無効になります。
問題は、電子メール アドレスを入力するときに、ユーザーが正しい電子メールよりも 1 文字多く入力すると、キーアップ イベントが発生するように見えることです (基本的に、hello@ 123.comがデータベースにある場合、hello@123 と入力する必要があります。送信を有効にするためのcom1 )
これが私の JSFiddleで、ajax 以外のすべてが機能しています。
ajax ファイル自体の例を次に示します。
<?php
session_start();
$Email = $_POST['email'];
//Parse ini file containing database information
$databaseInfo = parse_ini_file("optiMizeWebReport.ini", true);
global $con;
//Connect to database
$con = @mysqli_connect($databaseInfo['optiMizeDatabaseConnection'] ['WebServer'],$databaseInfo['optiMizeDatabaseConnection']['Username'], $databaseInfo['optiMizeDatabaseConnection']['Password'], $databaseInfo['optiMizeDatabaseConnection']['DBName']);
//Check connection and output error if invalid
if(!$con)
{
die('Connect Error ('. mysqli_connect_errno() .') '.mysqli_connect_error());
}
//Execute query
$result = mysqli_query($con, "SELECT COUNT(*) FROM login WHERE Email='$Email'")
or die("Error: ".mysqli_error($con));
//Initialize
$emailMatch = array();
//Extract
while($emailMatch[] = mysqli_fetch_array($result))
print_r($emailMatch[0][0]);
?>
他に役立つ情報があれば教えてください。ありがとう。
編集:
迅速な修正/回答がまだないように思われるため、何が起こるかを正確に示す短いビデオを作成しました。ここで見ることができます: https://www.youtube.com/watch?v=P-2Gz5b4ek8