2010-04-22 7 views
5

J'ai un tableau (pour les cases à cocher) que je dois passer à côté de la forme régulière dans un poste ajax, mais ne peut pas sembler obtenir ce travail:tableau post Jquery via 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

Vous recevez des erreurs? Avez-vous essayé d'utiliser quelque chose comme firebug pour voir ce qui se passe avec le post ajax? Peut-être que cela vous aiderait si vous incluez plus de code puisque ce qui précède ne fonctionnera pas sans erreurs. –

Répondre

7

Je m obtenir une erreur javascript sur cette ligne

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

je devais changer à cette

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

vous avez capitalisées J jQuery dans cette ligne

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

devrait être ce (ou tout simplement le raccourci de $)

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

aussi, je ne pense pas que vous avez besoin des parenthèses, dans la plupart des cas, ils rendraient plus difficile de récupérer les données sur le serveur

+0

Merci beaucoup pour avoir regardé ça ... Je n'ai pas réalisé que le "J" devait être en minuscule! En outre, vous avez raison sur les crochets. Tout affiche bien maintenant! – Dan

7

Après une reserach la seule solution qui a fonctionné pour moi était:

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

en outre, 'choix' utilisation avec les supports , donc vous serez en mesure de reprendre dans le serveur dans une seule variable, sinon ce sera un post pour chaque élément du tableau. Ça a marché pour moi. Vous pouvez voir un autre article here at stackoverflow. J'espère que cela sera en mesure d'aider quelqu'un dans le futur.

+0

Cela a fonctionné pour moi .. mais il y a une faute de frappe. Il vous manque une accolade après les choix, – Greg

+1

Correction du problème d'accolade –