Mam jednak problem z jQuery i z ajaxowaniem tego formularza.
Póki co korzystałem ze stałego kodu na ajax:
$('input[name="zatwierdz_kod"]').click(function(){ $.ajax({ url: "ajax.php", timeout: 5000, error: function(){ alert('Błąd - Zatwierdz kod'); }, data: "kod="+ $('input[name="kod_captcha"]').val()+"&co=zatwierdz_kod", type: "POST", success: function(html){ $("#przepisz_kod").html(html); } }); });
Czyli tłumacząc:
Funkcja włącza się po kliknięciu guzika zatwierdz_kod, kod php odpowiedzialny za sprawdzenie jest w ajax.php, efekt tego działania jest wyświetlany do divie #przepisz_kod.
Wszystko działa ok, póki nie pomylimy się podczas przepisywania, bądź też gdy jest tylko 1 kod do przepisania.
W innym wypadku, ajax w ogóle się nie ładuje.
Tłumacząc dokładniej:
Jeśli skrypt ajax.php wykryje niepoprawność kodu zwraca ten formularz jeszcze raz (wygląda dokładnie tak samo, w tym samym divie), tyle że tym razem w ogóle guzik Zatwierdź nie odpowiada (po kliknięciu nawet nie ładuje ajaxa).
------------
Inna sprawa, jeśli chodzi o wiele pól z kodem - tutaj, po naciśnięciu Zatwierdź, wysyła do pierwszego elementu, bez znaczenia czy to 5 czy 1 guzik.
Czytałem coś o "this" jednak tutaj jest taki problem, że schemat wygląda tak:
Tak więc treść jest w przepisz kod a nie jakby wg "this" pakowało do zatwierdz_kod.
Z góry dzięki za pomoc.
Miłego dnia.
// edit:
naprawione 2 opcje:
$('input[name="zatwierdz_kod"]').live('click', function() { var $this = $(this); $.ajax({ url: "ajax.php", timeout: 5000, error: function(){ alert('Błąd - Zatwierdz kod'); }, data: "kod="+ $('input[name="kod_captcha"]').val()+"&sid="+ $('input[name="sid_captcha"]').val()+"&co=zatwierdz_kod", type: "POST", success: function(html){ $this.parent().html(html); } }); });