私は JavaScript で奇妙な問題に直面しています。私は ajax データベースに取り組んでいます。データベースのログイン フォームは、ajax 要求/関数を使用してデータを PHP コントローラーに送信します。ログインページにエラー表示器の非表示の div (errorDiv という名前) があります。errorDiv html は次のとおりです。
<div id="errorDiv" style="visibility:hidden; display:none">
...
</div>
ログイン フォームのユーザー名とパスワードの両方のフィールドが空のままの場合、PHP コントローラーが応答してログイン フォームを表示し、JavaScript 関数「DisplayLoginError()」を実行する必要があります。これにより、エラー div が表示され、エラー メッセージが表示されます(両方のフィールドに入力してください) error-div.DisplayLoginError() 関数のコードは次のとおりです。
function DisplayLoginError()
{
document.getElementById('errorDiv').style.visibility="visible";
document.getElementById('errorDiv').style.display="block";
document.getElementById('errorDiv').innerHTML = "<?php echo $loginerror; ?>";
}
PHP コントローラーのコードは次のとおりです。
if(isset($_REQUEST['login']))
{
if(isset($_REQUEST['username']) && isset($_REQUEST['password']))
{
.....Both the fields are filled...
}
else /*===Error:Any of the username or password field has been left empty====*/
{
$loginerror='Please fill both the Fields to login.';
include $_SERVER['DOCUMENT_ROOT'].'\hospital\includes\collegedata\login-form.html.php';
}
}
問題は、ほとんどの JavaScript イベントがユーザー アクションによってトリガーされるため、実行できないことです。当分の間、フォームタグにマウスオーバーイベントを割り当てました。これは、トリガーされると DisplayLoginError 関数を実行し、errorDiv にエラーを表示します。
<form onmouseover="DisplayLoginError()"> ..... </form>
しかし、それは適切な解決策ではありません。ページ全体ではなくログイン div のみをロードしながら、この関数を実行できるイベントが必要です。ここでは、メイン ページがまだ div の変更のみである ajax データベースであるため、onload イベントを使用できません。この目的でイベントを使用できるようになるかもしれません...よくわかりません...もっと良い解決策があるかもしれません...どうすればajaxでそれを行うことができますか?