2012-05-01 12 views
76

Czy można wysłać obiekt i inne parametry o wartości form.serialize() za pomocą pojedynczego żądania $.ajax()?jquery form.serialize i inne parametry

Przykład:

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : { 
     $('#form').serialize(), 
     par1 : 1, 
     par2 : '2', 
     par3: 232 
    } 
} 

Jeśli nie, co jest najlepszym sposobem, aby złożyć formularz wraz z innymi parametrami.

Dzięki

Odpowiedz

159

serialize() skutecznie odwraca wartości formularza do ważnego kwerendy jako takie można po prostu dołączyć do napisu:

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232" 
} 
+10

dziękuję brat kokosa – Falcon

+6

@Falcon Co masz na myśli mówiąc o * kokos * tutaj? – Shafizadeh

+0

jak mogę zmienić 1 na zmienną –

55

Alternatywnie można użyć form.serialize() z $ .param (obiekt), jeśli przechowujesz swoje parametry w pewnej zmiennej obiektowej. Wykorzystanie byłoby:

var data = form.serialize() + '&' + $.param(object) 

Zobacz http://api.jquery.com/jQuery.param dla dalszego odniesienia.

+8

Podoba mi się ten. Oznacza to, że nie muszę patrzeć na brzydki querystring! –

+0

O wiele lepiej – JSHelp

+4

To zdecydowanie lepsza droga. Przyjęta odpowiedź jest niechlujna i nigdy nie powinna być używana w żadnej aplikacji produkcyjnej. – FastTrack

5

Nie wiem, ale żadna z powyższych pracował dla mnie, to użyłem tego i to działało:

W formularza odcinkach tablicy jest on przechowywany jako parę wartości klucza

Mamy pchnął nową wartość lub wartości tutaj w formie zmiennej, a następnie możemy przekazać tę zmienną bezpośrednio teraz.

var form = $('form.sigPad').serializeArray(); 
var uniquekey = { 
     name: "uniquekey", 
     value: $('#UniqueKey').val() 
}; 
form.push(uniquekey); 
0

Można utworzyć formularz auxiliar użyciu jQuery z treścią innej formie, a następnie dodać Tat formie innej params więc trzeba tylko szeregować je w zaproszeniu AJAX.

function createInput(name,value){ 
    return $('<input>').attr({ 
     name: name, 
     value: value 
    }); 
} 
$form = $("<form></form>"); 
$form.append($("#your_form input").clone()); 
$form.append(createInput('input_name', 'input_value')); 
$form.append(createInput('input_name_2', 'input_value_2')); 
.... 

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : $form.serialize() 
} 
-1

Rozwiązuję problem za pomocą instrukcji under; wysyłać dane z url samo GET Methode

$.ajax({ 
    url: 'includes/get_ajax_function.php?value=jack&id='+id, 
    type: 'post', 
    data: $('#b-info1').serializeArray(), 

i uzyskać wartość z $ _REQUEST [ 'value'] lub $ _GET [ 'id']

Powiązane problemy