Beste Weg das zu tun captcha mit einem Ajax-Formular in jquery?

Ich arbeite an einem Kommentar-script mit ajax, json und jquery.

Habe ich die meisten es getan, außer der schwierigste Teil,
Wenn ein Benutzer post X Anzahl der Kommentare in X Höhe der Zeit, mein php-Skript wird wieder eine "captcha" - trigger, um meine javascript-code unten, sagt er, dass diese die Bedürfnisse der Benutzer zur Eingabe eines captcha-code ein, bevor wir dort veröffentlichen Kommentar in der DB

Weiter unten werden Sie sehen, habe ich 3 Optionen für einen Rückgabewert: Erfolg, Fehler und captcha

wenn captcha ist zurück, ich möchte zu öffnen, eine popup-Dialogfeld auf dem Bildschirm und laden meine captcha-Skript, so weit funktioniert auch alles bis zu diesem Punkt.

Nun muss ich das captcha-Skript senden, nicht nur die captcha-Wert, sondern auch meine Benutzer-Kommentar, so dass ich nur brauchen, um füllen Sie ein hidden-Formularfeld mit dem Kommentar Wert. Leicht genug, das ich nur noch nicht getan haben, es noch. Nun, wenn ein user den falschen captcha-Wert, die es braucht, um neu zu laden der Bildschirm, aber das captcha popup-Bildschirm hin und wieder noch der Kommentar versteckt in einem form-Wert. Das ist, wo der schwierige Teil kommt.

Nach der Lektüre ist mein plan und der Betrachtung meines code unten, glaubst du, ich bin auf dem richtigen Weg? Irgendwelche Vorschläge auf eine bessere Möglichkeit?

<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:

Nach mehr gedacht, es scheint, ich brauche, um mein captcha ajax verwenden, wie gut oder aber es wird eine Seite neu laden =(

InformationsquelleAutor JasonDavis | 2009-08-11
Schreibe einen Kommentar