以前に同じコードを使用したことがあり、確認して確認しましたが、エラーはありません。どういうわけか、このコードは本来の動作をしていないようです。理由はわかりません。助けてください。
ajax コードは ajax リクエストを実行しないようですが、HTML でフォームが設定されている内容に応じて、通常の HTTP get/post リクエストを送信します。これは、ページが更新され続けることを意味します。成功関数も呼び出されないようです。$.ajax({の行まで、残りのコードが機能していることを確認しました。ここで、ページが更新されます。フォームを設定する方法でしょうか?送信ボタンがないことに注意してください。フォームは、押されたボタンに応じて異なるアクションをサーバーに送信します。
HTMLコードは次のとおりです。
<form id="frmVerify" name="frmVerify" method="post">
<p>Your account has not been verified. You must verify your email to continue logging into your account.</p>
<p>A verification token was sent to your email address, <strong id="username" name="username"><?php echo $_SESSION['username']; ?></strong>. Note that this token expires after 24 hours of issue.</p>
<p>Please check your email to retrieve this token:</p>
<p>
<input type="text" name="token" id="token" />
<button name="action" id="verify" value="<?php echo ACT_VERIFY; ?>">Verify</button>
</p>
<p>You can also: </p>
<p>
<button name="action" id="send" value="<?php echo ACT_SEND_TOKEN; ?>">Send another token</button><br />
<button name="action" id="change" value="<?php echo ACT_CHANGE_EMAIL; ?>">Change Email</button><br />
<button name="action" id="delete" value="<?php echo ACT_DELETE_ACCOUNT; ?>">Delete Account</button>
</p>
<p>
<input type="hidden" name="requester" id="requester" value="Verification" />
</p>
<p><a href="logout.php">Log out</a></p>
</form>
JQUERYコードは次のとおりです。
function submitForm(action){
var username = $("#username").html();
var token = $("#token").val();
var requester = $("#requester").val();
if(validateLogin()){
$.ajax({
type: "post",
url: "verification.php",
data: "username="+username+"&token="+token+"&action="+action+"&requester="+requester,
success: function(data) {
try{
var jsonObj = $.parseJSON(data);
processOutput(action, jsonObj);
}catch(e){
$("#output").html("PHP module returned non JSON object: <p>"+data+"</p>");
}//try
}//success function
});//ajax
}else{
alert("Please fill UserName & Password!");
return false;
}//if validate
}
$(document).ready(function(){
$("#verify").click(function(){
var action = $(this).val();
submitForm(action);
});
$("#send").click(function(){
var action = $(this).value();
submitForm(action);
});
$("#change").click(function(){
var action = $(this).value();
submitForm(action);
});
$("#delete").click(function(){
var action = $(this).value();
submitForm(action);
});
});