2010-04-22 13 views
5

Mam tablicę (do wyboru), że muszę przejść obok regularnej formy w poście ajax, ale nie wydaje się uzyskać to do pracy:Jquery po tablicy za pośrednictwem ajax

new_data = [a,b,c,d,e]; 

somedata_assoc = JQuery.param({'choices[]': new_data}); 

    $.ajax({ 
     type: "POST", 
    url: contract_qurl, 
    data: $(div).find("form").serialize()+"&"+somedata_assoc, 
    context: $(this), 
    success: function(data) { $("#results_table").html(data); } 
    }); 
+0

Czy otrzymujesz błędy? Czy próbowałeś użyć czegoś takiego jak firebug, aby zobaczyć, co się dzieje z postem ajaxowym? Może to pomogłoby, gdybyś zawarł więcej kodu, ponieważ powyższe nie będzie działało bez błędów. –

Odpowiedz

7

I m otrzymuję błąd javascript na tej linii

new_data = [a,b,c,d,e]; 

musiałem go zmienić na tym

new_data = ['a','b','c','d','e']; 

ty aktywowanych J w jQuery w tej linii

somedata_assoc = JQuery.param({'choices[]': new_data}); 

powinien być ten (lub tylko $ skrótów)

somedata_assoc = jQuery.param({'choices': new_data}); 

też, nie sądzę trzeba wsporniki, w większości przypadków to oni sprawiają, że trudniej jest odzyskać dane na serwerze

+0

Dzięki za tak wiele za to, że się nad tym zastanawiałem ... Nie wiedziałem, że "J" musi być małe! Masz rację co do zamków. Wszystko jest teraz w porządku! – Dan

7

Po Aarkstore jedynym rozwiązaniem, który pracował dla mnie było:

url='url/to/page' 
choices = [1,2,3,4,5,6] 
    $.post(url,{ 'choices[]': choices }, function(data){ 
      console.log(data); 
    },'html'); 

Ponadto, stosowanie „wybory” na uchwytach , więc będziesz mógł pobrać na serwer w jednej zmiennej, w przeciwnym razie będzie post dla każdego elementu tablicy. To zadziałało dla mnie. Możesz zobaczyć inny wpis here at stackoverflow.

Mam nadzieję, że będzie to w stanie pomóc komuś w przyszłości.

+0

To zadziałało dla mnie .. ale jest literówka. Brakuje ci nawiasów klamrowych po dokonaniu wyboru, – Greg

+1

Naprawiono brakujący problem z nawiasami klamrowymi –

Powiązane problemy