Я работаю над сценарием комментариев, используя ajax, json и jquery.
У меня больше всего сделано, кроме самой сложной части,
Если пользователь отправит X количество комментариев в X количество времени, мой скрипт php вернет триггер "captcha" в мой код JavaScript ниже, сообщив, что этот пользователь должен ввести код captcha перед тем, как мы разместим там комментарий в БД.
Ниже вы увидите, что у меня есть 3 варианта возвращаемого значения: success, error и captcha
когда возвращается капча, я хочу открыть всплывающее диалоговое окно на экране и загрузить мой скрипт капчи, пока все работает до этого момента.
Теперь мне нужно сделать так, чтобы скрипт капчи отправлял не только значение капчи, но и комментарии пользователей, поэтому мне просто нужно заполнить скрытое поле формы значением комментария. Достаточно просто, я просто еще этого не сделал. Теперь, если пользователь получит неправильное значение капчи, ему нужно перезагрузить экран, но снова открыть экран капчи и все равно скрыть комментарий в значении формы. Вот тут-то и вступает в хитрость.
После прочтения моего плана и просмотра кода ниже, как вы думаете, я на правильном пути? Любые предложения о лучшем способе?
<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>
UPDATE
После долгих раздумий кажется, что мне нужно, чтобы моя капча также использовала ajax, иначе произойдет перезагрузка страницы = (