2010-03-23 17 views
5

Kiedy używam tego kodu, mogę tylko odzyskać recaptcha_response_field. Jeśli usuniemy recaptcha_response_field, odzyskaję recaptcha_challenge_field. Jednak nie jestem w stanie odzyskać obu w tym samym czasie. Udało mi się wysłać tylko 1 dane.jquery.ajax pobieranie wielu danych

challengeField = $("#recaptcha_challenge_field").val(); 
responseField = $("#recaptcha_response_field").val(); 

var html = $.ajax(
    { 
     global: false, 
     type: "POST", 
     async: false, 
     dataType: "html", 
     data: "recaptcha_response_field=" + responseField + "&recaptcha_challenge_field=" + challengeField, 
     url: "../ajax.recaptcha.php" 
    }).responseText; 

if(html == "success") 
{ 
    $("#captchaStatus").html("Success. Submitting form."); 
    return true; 
} 
else 
{ 
    $("#captchaStatus").html("Your captcha is incorrect. Please try again"); 
    Recaptcha.reload(); 
    return false; 
} 

Odpowiedz

1

Spróbuj

data: { 
    recaptcha_response_field: responseField, 
    recaptcha_challenge_field: challengeField 
} 

??

Co oznacza, że ​​$_POST["recaptcha_response_field"] i $_POST["recaptcha_challenge_field"] nie są obie ustawione "wewnątrz" ajax.recaptcha.php.

To niemożliwe, Net-Tab Firebuga pokazuje, że żądanie działa poprawnie.

Czy sprawdzić logi serwera (włączenie danych post zalogowaniu tymczasowo)

+0

Po raz kolejny, tylko jeden działa –

+0

Sprawdź rozszerzona odpowiedź – jitter

+0

Tak, dokładnie to mam na myśli. Nie wiem, dlaczego jednak ... Używam joomla, jeśli to może pomóc. Nie ma nic istotnego w dziennikach serwerów. Dziękuję –

1

Maby coś takiego?

var challengeField = $("#recaptcha_challenge_field").val(); 
var responseField = $("#recaptcha_response_field").val(); 

/* Debug */ alert ("Going to send channengeField with value '" + challengeField + "', and responseField with '" + resonseField + "'"); 

$.post ("../ajax.recaptcha.php", { 
     recaptcha_response_field: responseField, 
     recaptcha_challenge_field: challengeField 
    }, 
    function(data) 
    { 
     /* Debug */ alert ("Data Recieved: " + data); 

     if (data == "success") 
     { 
      $("#captchaStatus").html("Success. Submitting form."); 

      return true; 
     } 
     else 
     { 
      $("#captchaStatus").html("Your captcha is incorrect. Please try again"); 
      Recaptcha.reload(); 

      return false; 
     } 
    }); 
2

napisałeś tę linię data: "recaptcha_response_field=" + responseField + "&recaptcha_challenge_field=" + challengeField, było źle.

można spróbować to:

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston" } 
}).done(function(msg) { 
      alert("Data Saved: " + msg); 
    }); 

lub data: {recaptcha_response_field : responseField , recaptcha_challenge_field :challengeField

dzięki, Chintu

0

Można spróbować jak to

data: "recaptcha_response_field=" + $("#recaptcha_challenge_field").val() + "&recaptcha_challenge_field=" + ("#recaptcha_response_field").val(), 
Powiązane problemy