これは前に働いていて、何も変えなかったことを覚えていません。私はフォームを持っており、情報を "処理中の" PHPファイルに送り、応答を返すべきです。代わりに、単に "処理中"のPHPに行き、JSONデータを新しいページにエコーします。 JqueryはGoogleから含まれており、フォームページと「プロセス」ページは同じディレクトリにあります。Ajaxリクエストは現在のページを更新するのではなく、新しいページに移動しますか?
$data = array(
'status' => $status,
'message' => $errorMsg
);
echo json_encode($data);
if ($status == "success"){
session_destroy();
}
exit();
これは、すべての処理が終了した時点で行われます(データが良好であり、正常に動作していることを確認します)。これは使用されるjavascriptです:
$(document).ready(function(){
$('#signupForm').submit(function(){
//various client side checks to keep form from submitting easy to see garbage
if($(this).data('formstatus') !== 'submitting'){
var responseMsg = $('#response');
responseMsg.hide()
.addClass('response-waiting')
.text('Signing Up...')
.fadeIn(200);
var dataString = //the data
$.ajax({
type: "POST",
url: "process.php",
data: dataString,
success: function(data) {
var responseData = jQuery.parseJSON(data),
messageClass = '';
switch(responseData.status){
case 'error':
messageClass = 'response-error';
break;
case 'success':
messageClass = 'response-success';
break;
}
responseMsg.fadeOut(200,function(){
$(this).removeClass('response-waiting')
.addClass(messageClass)
.text(responseData.message)
.fadeIn(200,function(){
setTimeout(function(){
responseMsg.fadeOut(200,function(){
$(this).removeClass(messageClass);
});
},5000);
});
});
}
});
}
return false;
});
})
具体的なものがある場合は、私に知らせてください、私は更新します。私が言ったように、私はそれが働いていた(昨日)と私は全く問題ではないと知っているトップでクライアント側のチェックを取る以外は何も変更覚えていません。
私はウェブコンソールのチェックを忘れています。無関係のスクリプトでエラーになってしまったので、私はそれを見ていませんでした。 – townie