jQueryを使用しているWebページにAjaxを追加する作業を行っています。私はAjaxが初めてであることに注意してください。このページは単純な登録フォームであり、フォームが登録コードにリダイレクトされる前に、ユーザーが指定した電子メール アドレスが既に登録されているかどうかを確認し、登録されているかどうかをユーザーに伝えたいと考えています。
この質問とその回答を読んで、効果を再現するために実験しましたが、成功しませんでした。
[送信] をクリックすると、javascript 関数が呼び出されます (関数に診断コードを追加することでこれを証明しましたcheckEmail()
)。への呼び出し/user/process/chechemail.php
。コード (以下) は/user/
ディレクトリにurl:
あります。相対パスと絶対パスのすべてのバリエーションでパスを変更しました。Apache エラー ログには何も記録されません。
ユーザーが送信ボタンをクリックすると、「問題が発生しました!」というメッセージが表示されます。誰が何が間違っているかを見つけることができますか?
私が持っているコードは次のとおりです。
<script>
function checkEmail()
{
$.ajax(
{
type: "POST",
dataType: "html",
data:
{
email: $('#email').val()
},
url: "/user/process/checkemail.php"
})
.done(function(response)
{
$('#message').html(response);
})
.fail(function()
{
$('#message').html("Something went wrong!");
return false;
});
}
</script>
<div id="register-form">
<form name="register" action="process/register.php" method="post" onsubmit="return checkEmail();">
<div class="register-email-cell">
<p class="text">Email Address</p>
</div>
<div class="register-email-cell">
<input class="input" type="text" name="email">
</div>
<div class="register-email-cell">
<input class="button" type="submit" value="Register">
</div>
<div>
<p id="message" class="text"></p>
</div>
</form>
</div>
ノート:
<script>
jQuery への参照は PHP インクルードにありますが、上には示されていません。- /user/process/checkemail.php - $_REQUEST['email'] を検索し、データベースに対してクエリを実行し、'Email address exists' または 'Email address available' のいずれかを示す文字列を返します - これにより、 bot を使用してメール アドレスを収集しますが、これは私自身の学習に使用したサンプル コードです。- 量産コードにはなりません。