私はajax、json、jqueryを使用してコメントスクリプトに取り組んでいます。
最も難しい部分を除いて、ほとんどの作業を完了しました。ユーザーがX回のコメントをX回の時間で投稿すると、phpスクリプトは以下のJavaScriptコードに「キャプチャ」トリガーを返し、このユーザーが入力する必要があることを通知します。 DBにコメントを投稿する前のキャプチャコード
以下に、戻り値の3つのオプション(成功、エラー、キャプチャ)があります。
キャプチャが返されたときに、画面にポップアップダイアログを開いて、キャプチャスクリプトをロードしたいのですが、これまでのところ、これまでのところすべてが機能しています。
次に、キャプチャスクリプトを送信する必要があります。キャプチャ値だけでなく、ユーザーのコメントも送信する必要があるため、非表示のフォームフィールドにコメント値を入力するだけです。簡単なことですが、まだやっていません。これで、ユーザーが間違ったキャプチャ値を取得した場合、画面をリロードする必要がありますが、キャプチャ画面を再度ポップアップしても、フォーム値にコメントが非表示になります。そこで、トリッキーな部分が出てきます。
私の計画を読み、以下の私のコードを見た後、私は正しい方向に進んでいると思いますか?より良い方法について何か提案はありますか?
<script type="text/javascript">
$.ajax({
type: "POST",
url: "process.php",
data: dataString,
dataType: "json",
success: function(data) {
if (data.response === 'captcha') {
//they are mass posting so we need to give them the captcha form
// I can send the users sanitized comment through the captcha script somehow
// 'data.comment' is holding the comment value
jQuery.facebox(function() {
// This opens up a facebox dialog on the screen and popolates it with the captcha image and script
jQuery.get('captchabox.php', function(data) {
jQuery.facebox( '' + data + '')
data.comment;
})
})
} else if (data.response === 'success') {
// success append the sanitized-comment to the page
$('#comments').prepend(data.comment);
} else if (data.response === 'error') {
// just an alert for testing purposes
alert('sorry there was an error');
};
}
});
</script>
アップデート:
さらに考えた後、キャプチャにajaxも使用させる必要があるようです。そうしないと、ページのリロードが発生します=(