উত্তর:
আপনি ফর্মটি সাধারণভাবে জমা দিচ্ছেন বা এজেএক্স কলের মাধ্যমে তা নির্ভর করে। উদাহরণস্বরূপ ডকুমেন্টেশন সহ আপনি jquery.com এ প্রচুর তথ্য পেতে পারেন । সাধারণত একটি ফর্ম জমা দেওয়ার submit()
জন্য, সেই সাইটে পদ্ধতিটি পরীক্ষা করে দেখুন । জন্য AJAX এর , অনেক বিভিন্ন সম্ভাবনার, যদিও আপনি সম্ভবত পারেন ব্যবহার করার বিষয়ে নিশ্চিত ajax()
বা post()
পদ্ধতি। নোট করুন যে একটি সরলীকৃত এবং সীমিত ইন্টারফেসের post()
মাধ্যমে ajax()
পদ্ধতিটি কল করার জন্য এটি কেবল একটি সুবিধাজনক উপায় ।
একটি সমালোচনামূলক সংস্থান, আমি প্রতিদিন ব্যবহার করি, আপনার বুকমার্ক করা উচিত কীভাবে jQuery কাজ করে । এটিতে jQuery ব্যবহারের টিউটোরিয়াল রয়েছে এবং বাম-হাতের ন্যাভিগেশন সমস্ত ডকুমেন্টেশন অ্যাক্সেস দেয়।
উদাহরণ:
সাধারণ
$('form#myForm').submit();
AJAX এর
$('input#submitButton').click( function() {
$.post( 'some-url', $('form#myForm').serialize(), function(data) {
// ... do something with response from server
},
'json' // I expect a JSON response
);
});
$('input#submitButton').click( function() {
$.ajax({
url: 'some-url',
type: 'post',
dataType: 'json',
data: $('form#myForm').serialize(),
success: function(data) {
// ... do something with the data...
}
});
});
লক্ষ্য করুন যে উপরের ajax()
এবং post()
পদ্ধতিগুলি সমান are ajax()
ত্রুটিগুলি হ্যান্ডল করার অনুরোধে আপনি যুক্ত করতে পারেন এমন অতিরিক্ত পরামিতি রয়েছে etc.
$('form#MyForm').serialize() + '&newData=' + newData + '&moreData=' + moreData
। দ্রষ্টব্য: দ্বিতীয়টি ব্যবহার করে ইউআরএল এনকোড করা দরকার encodeURIComponent()
। অথবা - আপনি উভয় প্রান্তে জেএসএন এনকোডিং ব্যবহার করতে পরিবর্তন করতে পারেন তবে তারপরে আপনাকে ফর্মের ডেটাটি আপনার অতিরিক্ত ডেটা সহ একটি জাভাস্ক্রিপ্ট ডেটা কাঠামোর মধ্যে স্থাপন এবং সিরিয়ালাইজ করতে হবে। serializeArray
সেক্ষেত্রে আপনি সম্ভবত ফর্মটি ব্যবহার করতে এবং আপনার অন্যান্য ডেটা একত্রীকরণ করতে
আপনি ব্যবহার করতে হবে $("#formId").submit()
।
আপনি সাধারণত কোনও ফাংশন থেকে এটিকে কল করবেন।
উদাহরণ স্বরূপ:
<input type='button' value='Submit form' onClick='submitDetailsForm()' />
<script language="javascript" type="text/javascript">
function submitDetailsForm() {
$("#formId").submit();
}
</script>
আপনি এই সম্পর্কিত আরও তথ্য জেকারি ওয়েবসাইটে পেতে পারেন ।
যখন আপনার কোনও বিদ্যমান ফর্ম রয়েছে, এখন এটি jquery - এজ্যাক্স / পোস্টের সাথে কাজ করা উচিত আপনি এখন করতে পারেন:
আপনার নিজের জিনিস না
$(function() {
//hang on event of form with id=myform
$("#myform").submit(function(e) {
//prevent Default functionality
e.preventDefault();
//get the action-url of the form
var actionurl = e.currentTarget.action;
//do your own request an handle the results
$.ajax({
url: actionurl,
type: 'post',
dataType: 'application/json',
data: $("#myform").serialize(),
success: function(data) {
... do something with the data...
}
});
});
});
দয়া করে নোট করুন, serialize()
ফাংশনটি উপরের উদাহরণে কাজ করার জন্য , সমস্ত ফর্ম উপাদানগুলির তাদের name
বৈশিষ্ট্য সংজ্ঞায়িত করা প্রয়োজন।
ফর্মের উদাহরণ:
<form id="myform" method="post" action="http://example.com/do_recieve_request">
<input type="text" size="20" value="default value" name="my_input_field">
..
.
</form>
@ পিটিএফ - এই নমুনায় পোষ্ট ব্যবহার করে ডেটা জমা দেওয়া হয়েছে, সুতরাং এর অর্থ আপনি আপনার ডেটা অ্যাক্সেস করতে পারবেন
$_POST['dataproperty1']
, যেখানে ডেটাপ্রোপার্টি 1 আপনার জসনে একটি "ভেরিয়েবল-নাম"।
আপনি কোডআইজিটার ব্যবহার করে যদি এখানে নমুনা বাক্য গঠন:
$pdata = $this->input->post();
$prop1 = $pdata['prop1'];
$prop1 = $pdata['prop2'];
JQuery এ আমি নিম্নলিখিতগুলি পছন্দ করব:
$("#form-id").submit()
তবে আবার, সেই কাজটি সম্পাদন করার জন্য আপনার সত্যিই jQuery এর দরকার নেই - কেবল নিয়মিত জাভাস্ক্রিপ্ট ব্যবহার করুন:
document.getElementById("form-id").submit()
কেউ যদি ব্যবহার করেন তথ্যের জন্য
$('#formId').submit();
এরকম কিছু করবেন না
<button name = "submit">
আমাকে খুঁজে পেতে বেশ কয়েক ঘন্টা সময় লেগেছিল যে জমা দিন () এটি কাজ করবে না।
"sumit"
এটি অস্পষ্ট করে তোলে যদি টাইপো উত্তরে নিরবচ্ছিন্ন থাকে, বা সমস্যার সাথে সম্পর্কিত ছিল। আপনি কী বোঝাতে চাইছেন যে "submit"
jquery ফর্মটি নামের একটি বোতামটি জমা দেয় ()? বা আপনি বোঝাতে চাইছেন যে সমস্যাটি আপনি মানটির পরিবর্তে বোতামটির নাম জমা দিয়েছিলেন type="submit"
?
Jquery ব্যবহার করে আপনার ফর্মটি জমা দিতে এটি ব্যবহার করুন। এখানে লিঙ্কটি http://api.jquery.com/submit/
<form id="form" method="post" action="#">
<input type="text" id="input">
<input type="button" id="button" value="Submit">
</form>
<script type="text/javascript">
$(document).ready(function () {
$( "#button" ).click(function() {
$( "#form" ).submit();
});
});
</script>
button
ফর্মটি জমা না দেয় তা নিশ্চিত করার জন্য আপনার বোতামে একটি প্রকার যুক্ত করা মূল্যবান (সমস্ত ব্রাউজারগুলি কোনও ধরণের বিন্যাসের সাথে একইভাবে আচরণ করে না)।
এটি প্রিলোডার সহ একটি ফর্ম পাঠাবে:
var a=$('#yourform').serialize();
$.ajax({
type:'post',
url:'receiver url',
data:a,
beforeSend:function(){
launchpreloader();
},
complete:function(){
stopPreloader();
},
success:function(result){
alert(result);
}
});
আমি এলোমেলো পদ্ধতিতে একটি ফর্ম ডেটা পোস্টকে সংস্কার করার জন্য কিছু কৌশল করেছি http://www.jackart4.com/article.html
মনে রাখবেন যে আপনি যদি ইতিমধ্যে আপনার ফর্মের জন্য জমা দেওয়া ইভেন্ট শ্রোতা ইনস্টল করেন তবে জমা দেওয়ার জন্য সহজাত কল ()
jQuery('#<form-id>').submit( function(e){
e.preventDefault();
// maybe some validation in here
if ( <form-is-valid> ) jQuery('#<form-id>').submit();
});
এই ফর্মটির জমা দেওয়ার ইভেন্টের (যা ব্যর্থ হয়) কোনও নতুন ইভেন্ট শ্রোতা ইনস্টল করার চেষ্টা করার সাথে সাথে এটি কাজ করবে না । সুতরাং আপনাকে এইচটিএমএল এলিমেন্ট নিজেই অ্যাক্সেস করতে হবে (jQquery থেকে আন-মোড়ক) এবং সরাসরি এই উপাদানটিতে সাবমিট () জমা দিন:
jQuery('#<form-id>').submit( function(e){
e.preventDefault();
// note the [0] array access:
if ( <form-is-valid> ) jQuery('#<form-id>')[0].submit();
});
আপনি এজ্যাক্স পাশাপাশি ব্যবহার করার জন্য jquery ফর্ম প্লাগইন ব্যবহার করতে পারেন:
দ্রষ্টব্য যে ইন্টারনেট এক্সপ্লোরারে গতিশীলভাবে তৈরি ফর্মগুলির সাথে সমস্যা রয়েছে। এর মতো তৈরি একটি ফর্ম IE (9) এ জমা দেবে না:
var form = $('<form method="post" action="/test/Delete/">' +
'<input type="hidden" name="id" value="' + myid + '"></form>');
$(form).submit();
এটিতে কাজ করার জন্য ফর্ম উপাদান তৈরি করুন এবং এটি জমা দেওয়ার আগে এটি সংযুক্ত করুন:
var form = document.createElement("form");
$(form).attr("action", "/test/Delete")
.attr("method", "post");
$(form).html('<input type="hidden" name="id" value="' + myid + '" />');
document.body.appendChild(form);
$(form).submit();
document.body.removeChild(form);
উদাহরণস্বরূপ 1 এর মতো ফর্ম তৈরি করা এবং তারপরে এটি সংযুক্তি কার্যকর হবে না - IE9 এ এটি একটি জেএসক্রিপ্ট ত্রুটি ছুড়ে ফেলে DOM Exception: HIERARCHY_REQUEST_ERR (3)
টমি ডব্লু @ https://stackoverflow.com/a/6694054/694325 এ প্রপস
সমাধানগুলি এখন পর্যন্ত আপনাকে ফর্মটির আইডি জানতে হবে।
আইডি না জেনে ফর্মটি জমা দেওয়ার জন্য এই কোডটি ব্যবহার করুন:
function handleForm(field) {
$(field).closest("form").submit();
}
উদাহরণস্বরূপ আপনি যদি একটি বোতামের জন্য ক্লিক ইভেন্টটি পরিচালনা করতে চান তবে আপনি ব্যবহার করতে পারেন
$("#buttonID").click(function() {
handleForm(this);
});
আপনি এটি এর মতো ব্যবহার করতে পারেন:
$('#formId').submit();
অথবা
document.formName.submit();
গতিশীল ফর্মগুলির জন্য IE কৌশল:
$('#someform').find('input,select,textarea').serialize();
আমি একটি জেনেরিক সমাধানের প্রস্তাব দিচ্ছি যাতে আপনাকে প্রতিটি ফর্মের জন্য কোড যুক্ত করতে না হয়। Jquery ফর্ম প্লাগইন ব্যবহার করুন (http://jquery.malsup.com/form/) এবং এই কোডটি যুক্ত করুন।
$(function(){
$('form.ajax_submit').submit(function() {
$(this).ajaxSubmit();
//validation and other stuff
return false;
});
});
আমি আজাক্সের মাধ্যমে কোনও ফর্ম জমা দেওয়ার জন্য (প্রকৃতপক্ষে তা জমা না দিয়ে) নিম্নলিখিতটি ব্যবহার করেছি:
jQuery.get("process_form.php"+$("#form_id").serialize(), {},
function() {
alert("Okay!");
});
$.post
জমা দেওয়ার জন্য ডেটা উত্পন্ন করার জন্য ফর্মটি সুস্পষ্টভাবে ডিকনস্ট্রাক্ট করে এবং পুনর্গঠন করে। ধন্যবাদ!