jQuery: সিরিয়ালাইজ () ফর্ম এবং অন্যান্য পরামিতি


113

একক এজেএক্স অনুরোধের সাথে ফর্ম উপাদানগুলি ( .serialize()পদ্ধতিতে ক্রমিকযুক্ত ) এবং অন্যান্য পরামিতিগুলি পাঠানো কি সম্ভব ?

উদাহরণ:

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

যদি না হয় তবে অন্যান্য পরামিতিগুলির সাথে একত্রে ফর্ম জমা দেওয়ার সর্বোত্তম উপায় কী?

ধন্যবাদ

উত্তর:


235

serialize() কার্যকরভাবে ফর্মের মানগুলি একটি বৈধ ক্যোরিস্ট্রিংয়ে রূপান্তরিত করে, যেমন আপনি কেবল স্ট্রিংয়ের সাথে যুক্ত করতে পারেন:

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

7
@ ফ্যালকন এখানে নারকেল বলতে কী বোঝ ?
শাফিজাদেহ

আমি কীভাবে 1 টি ভেরিয়েবলে পরিবর্তন করতে পারি
স্লাতান-কো

3
@ শাফিজাদেহ এটি একটি ছড়া (অনেক - নারকেল)
আদম

আপনি দয়া করে বলতে পারেন কেন এখানে কেন কন্টেন্ট টাইপের দরকার নেই ?? এটি কি ডিফল্টরূপে যুক্ত হয়?
kernal lora

হ্যাঁ, ফর্ম 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

ররি ম্যাকক্রসন উত্তর অনুসরণ করে , আপনি যদি একটি পূর্ণসংখ্যার অ্যারে (প্রায়। নেট জন্য) প্রেরণ করতে চান তবে এই কোডটি:

// ...

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 ব্যবহার করে একটি সহায়ক ফর্ম তৈরি করতে পারেন এবং তারপরে অন্যান্য প্যারামগুলি যুক্ত করতে পারেন যাতে আপনাকে কেবল এজ্যাক্স কলটিতে সিরিয়ালাইজ করতে হয়।

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 একই জিইটি মেথোড সহ ডেটা প্রেরণ করুন

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

এবং $_REQUEST['value']OR এর সাথে মান পাবেন$_GET['id']


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.