Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]Recaptcha ajax problem
Forum PHP.pl > Forum > Przedszkole
jacobson
Witam mam problem z Recaptcha. Wykorzystuje CodeIgniter i na stronie mam pusty box <div id="registerBox"></div> do ktorego laduje tresc formularza ajaxem (poniewaz tresci moga byc rozne). Wykonuje zapytanie do metody na serwerze ktora generuje mi kod recaptchy ( $data['recaptcha_html'] = $this->recaptcha->recaptcha_get_html(); ).
Nastepnie do zmiennej przypisuje widok (w ktorym znajduje sie ta recaptcha) $view = $this->load->view('register/performer', $data, TRUE); i dalej jsonem przekazuje ja spowrotem do strony ( echo json_encode($view); ). Sprawdzalem var_dumpami i zmienna $data['recaptcha_html'] i $view maja prawidlowe wartosci. W callback success do elementu registerBox dopisuje to co pobralem ($('#registerBox').html(data)) <- data to parametr funkcji success. Jako wynik pojawia mi sie moja zawartosc jednak bez recapchy - w firebugu widze tylko :

  1. <div id="recaptcha" class="help-inline" style="margin-left: -10px;">
  2. <script src="http://www.google.com/recaptcha/api/challenge?k=xxx" type="text/javascript">
  3. Reload the page to get source for: <a href="http://www.google.com/recaptcha/api/challenge?k=xxx" target="_blank">http://www.google.com/recaptcha/api/challenge?k=xxx</a>
  4. </script>
  5. <noscript> <iframe src="http://www.google.com/recaptcha/api/noscript?k=xxx" height="300" width="500" frameborder="0"></iframe><br/> <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea> <input type="hidden" name="recaptcha_response_field" value="manual_challenge"/> </noscript>
  6. </div>


czy ktos moze spotkal sie z podobnym problemem ?
pozdrawiam
sada
może brak biblioteki w PHP
jacobson
Wlasnie wszystko jest zaladowane tak jak pisalem ze var_dumpy mi wszystko prawidlowo pobieraja. Teraz zauwazylem dziwna rzecz. W moim callbacku success daje $('#registerBox').html(data); jak zaraz po tym dam alert$('#registerBox').html()) to nie idzie (zaden pop up nie pojawia sie). Jezeli w tym success dam $('#registerBox').show() to sie nie pojawi, ale jak dam po calym $.ajax to juz sie pojawi - ale bez tej recaptchy i jak tam dam alert($('#registerBox').html()) to pojawi sie pop up z pusta zawartoscia.

  1. ('#registerPerformer').click(function(e) {
  2. $('#registerChoice').hide();
  3.  
  4. $.ajax({
  5. url: '/getModal',
  6. data: {
  7. type: 'performer'
  8. },
  9. dataType: 'json',
  10. type: 'post',
  11. success: function(data) {
  12. $('#registerBox').html(data);
  13. alert('1');
  14. }
  15. });
  16. $('#registerBox').show();
  17.  
  18. e.stopPropagation();
  19. });
tak to wyglada - alert 1 w tym wypadku nie zadziala. Jak damy go pod show() to wtedy zadziala.


////////////////////////

rozwiazalem poprzez doladowanie captchy przez ajax

Recaptcha.create("pub key",
"recaptcha",
{
theme: "white"
}
);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.