jQuery: क्रमबद्ध () फ़ॉर्म और अन्य पैरामीटर


115

क्या एक AJAX अनुरोध के साथ फार्म तत्व ( .serialize()विधि के साथ क्रमबद्ध ) और अन्य मापदंडों को भेजना संभव है ?

उदाहरण:

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

यदि नहीं, तो अन्य मापदंडों के साथ फॉर्म जमा करने का सबसे अच्छा तरीका क्या है?

धन्यवाद

जवाबों:


236

serialize() प्रभावी रूप से फॉर्म वैल्यू को एक वैध क्वेरिस्ट्रिंग में बदल देता है, जैसे कि आप केवल स्ट्रिंग को जोड़ सकते हैं:

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

7
@ फाल्कन आप यहाँ नारियल का क्या मतलब है?
शफीज़ादेह

मैं 1 से चर में कैसे बदल सकता हूं
Slatan-ko

3
@ शफिज़ादे इसकी एक कविता (एक - नारियल)
एडम

क्या आप बता सकते हैं कि यहाँ कंटेंट टाइप की कोई आवश्यकता क्यों नहीं है ?? क्या वह डिफ़ॉल्ट रूप से जोड़ा गया है?
कर्नल लोरा

हां, प्रपत्र url एन्कोडेड डिफ़ॉल्ट है। अधिक जानकारी के लिए jquery प्रलेखन देखें
रोरी मैकक्रॉन

77

वैकल्पिक रूप से आप इस्तेमाल कर सकते हैं form.serialize()के साथ $.param(object)करता है, तो आप किसी वस्तु चर में अपने परम दुकान। उपयोग होगा:

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

अधिक संदर्भ के लिए http://api.jquery.com/jQuery.param देखें ।


10
मैं यह पसंद है। इसका मतलब है कि मुझे एक बदसूरत झगड़े को देखने की ज़रूरत नहीं है!
ग्रेग वुड्स

4
यह बेहतर तरीका है, अब तक। स्वीकृत उत्तर गड़बड़ है और इसका उपयोग कभी भी किसी भी उत्पादन अनुप्रयोग में नहीं किया जाना चाहिए।
फास्टट्रैक

3
यदि हम उत्पादन वातावरण की बात कर रहे हैं, तो इनमें से किसी भी उत्तर का उपयोग नहीं किया जाना चाहिए। formसभी जानकारी इतना है कि यह एक कॉल में श्रृंखलाबद्ध जा सकता है (छुपी फ़ील्ड यदि आवश्यक में) शामिल करना चाहिए। इस तरह यदि जेएस अक्षम है या विफल रहता है, तो फॉर्म जमा करना अभी भी विफल होना चाहिए और भेजे जाने पर सभी डेटा को शामिल करना चाहिए।
रोरी मैकक्रॉन

9

मुझे नहीं पता, लेकिन उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया, फिर मैंने इसका इस्तेमाल किया और यह काम किया:

प्रपत्र के क्रमबद्ध सरणी में इसे कुंजी मूल्य युग्म के रूप में संग्रहीत किया जाता है

हमने यहाँ नए मान या मानों को रूपांतर चर में धकेल दिया और फिर हम इस चर को अब सीधे पास कर सकते हैं।

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

1

यदि आप प्रपत्र क्रमांकन के साथ डेटा भेजना चाहते हैं तो आप यह कोशिश कर सकते हैं

var form= $("#formId");
$.ajax({
    type: form.attr('method'),
    url: form.attr('action'),
    data: form.serialize()+"&variable="+otherData,
    success: function (data) {
    var result=data;
    $('#result').attr("value",result);

    }
});

0

इस तरह से पैरामीटर का मान

data : $('#form_id').serialize() + "&parameter1=value1&parameter2=value2"

और इसी तरह।


0

रोरी मैकक्रॉसन जवाब के बाद , यदि आप पूर्णांक की एक सरणी (लगभग .NET के लिए) भेजना चाहते हैं, तो यह कोड है:

// ...

url: "MyUrl",       //  For example --> @Url.Action("Method", "Controller")
method: "post",
traditional: true,  
data: 
    $('#myForm').serialize() +
    "&param1="xxx" +
    "&param2="33" +
    "&" + $.param({ paramArray: ["1","2","3"]}, true)
,             

// ...

-1

आप किसी अन्य रूप की सामग्री के साथ jQuery का उपयोग करके एक रूपांतरित रूप बना सकते हैं और फिर उस रूप को अन्य पारमों में जोड़ सकते हैं ताकि आपको केवल इसे 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

मैं अंडर स्टेटमेंट के साथ समस्या को ठीक करता हूं; url समान GET मेथोड के साथ डेटा भेजें

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

और $_REQUEST['value']OR के साथ मूल्य प्राप्त करें$_GET['id']


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.