জ্যাকুরি এজেএক্স ব্যবহার করে এইচটিএমএল ফর্ম জমা দেওয়া হচ্ছে


107

তোমার দর্শন লগ করা হচ্ছে দ্রুত ব্যবহার করে একটি এইচটিএমএল ফর্ম জমা বের করার চেষ্টা এই উদাহরণে

আমার এইচটিএমএল কোড:

<form id="formoid" action="studentFormInsert.php" title="" method="post">
    <div>
        <label class="title">First Name</label>
        <input type="text" id="name" name="name" >
    </div>
    <div>
        <label class="title">Name</label>
        <input type="text" id="name2" name="name2" >
    </div>
    <div>
        <input type="submit" id="submitButton"  name="submitButton" value="Submit">
    </div>
</form>

আমার লিপি:

<script type="text/javascript">
    $(document).ready(function() { 
        $('#formoid').ajaxForm(function() { 
            alert("Thank you for your comment!"); 
        }); 
    });
</script>

এটি কাজ করছে না, আমি সতর্কতা বার্তাটিও পাচ্ছি না এবং আমি যখন জমা দিই আমি অন্য পৃষ্ঠায় পুনঃনির্দেশ করতে চাই না, আমি কেবল সতর্কতা বার্তাটি দেখাতে চাই।

এটি করার একটি সহজ উপায় আছে?

পিএস: আমার বেশ কয়েকটি ক্ষেত্র রয়েছে, উদাহরণ হিসাবে আমি দুটি রেখেছি।


আপনি কি "ফর্ম" এইচটিএমএল উপাদানটি সরিয়ে ফেলতে পারবেন না? এবং আস বোতামটির ক্লিক হ্যান্ডলারের পোস্ট করতে jquery ব্যবহার করুন
কঠোরচাওলা

উত্তর:


177

এজেএক্সের দ্রুত বর্ণনা

এজেএক্স হ'ল এসিনক্রোনাস জেএসএন বা এক্সএমএল (বেশিরভাগ নতুন পরিস্থিতিতে জেএসওএন)। যেহেতু আমরা একটি এএসওয়াইএনসি কাজ করছি আমরা সম্ভবত আমাদের ব্যবহারকারীদের আরও উপভোগ্য ইউআই অভিজ্ঞতা সরবরাহ করব। এই নির্দিষ্ট ক্ষেত্রে আমরা এজ্যাক্স ব্যবহার করে একটি ফর্ম জমা দিচ্ছি।

সত্যিই দ্রুত সেখানে 4 সাধারণ ওয়েব পদক্ষেপ নেওয়ার GET, POST, PUT, এবং DELETE; এই সরাসরি সঙ্গে সংগতিপূর্ণ SELECT/Retreiving DATA, INSERTING DATA, UPDATING/UPSERTING DATA, এবং DELETING DATA। একটি ডিফল্ট এইচটিএমএল / এএসপি. নেট ওয়েবফর্ম / পিএইচপি / পাইথন বা অন্য কোনও ক্রিয়াকলাপ form"জমা দেওয়া" যা একটি পোষ্ট ক্রিয়া। এর কারণে নীচে সমস্ত একটি পোষ্ট করা বর্ণনা করবে। কখনও কখনও তবে HTTP এর সাহায্যে আপনি অন্য কোনও ক্রিয়া চান এবং সম্ভবত এটি ব্যবহার করতে চান .ajax

আমার কোডটি বিশেষত আপনার জন্য (কোড মন্তব্যে বর্ণিত):

/* attach a submit handler to the form */
$("#formoid").submit(function(event) {

  /* stop form from submitting normally */
  event.preventDefault();

  /* get the action attribute from the <form action=""> element */
  var $form = $(this),
    url = $form.attr('action');

  /* Send the data using post with element id name and name2*/
  var posting = $.post(url, {
    name: $('#name').val(),
    name2: $('#name2').val()
  });

  /* Alerts the results */
  posting.done(function(data) {
    $('#result').text('success');
  });
  posting.fail(function() {
    $('#result').text('failed');
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form id="formoid" action="studentFormInsert.php" title="" method="post">
  <div>
    <label class="title">First Name</label>
    <input type="text" id="name" name="name">
  </div>
  <div>
    <label class="title">Last Name</label>
    <input type="text" id="name2" name="name2">
  </div>
  <div>
    <input type="submit" id="submitButton" name="submitButton" value="Submit">
  </div>
</form>

<div id="result"></div>


নথিপত্র

JQuery ওয়েবসাইট $.postডকুমেন্টেশন থেকে।

উদাহরণ : এজাক্স অনুরোধগুলি ব্যবহার করে ফর্ম ডেটা প্রেরণ করুন

$.post("test.php", $("#testform").serialize());

উদাহরণ : এজাক্স ব্যবহার করে একটি ফর্ম পোস্ট করুন এবং ফলাফলকে একটি ডিভিতে রাখুন

<!DOCTYPE html>
<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    </head>
    <body>
        <form action="/" id="searchForm">
            <input type="text" name="s" placeholder="Search..." />
            <input type="submit" value="Search" />
        </form>
        <!-- the result of the search will be rendered inside this div -->
        <div id="result"></div>
        <script>
            /* attach a submit handler to the form */
            $("#searchForm").submit(function(event) {

                /* stop form from submitting normally */
                event.preventDefault();

                /* get some values from elements on the page: */
                var $form = $(this),
                    term = $form.find('input[name="s"]').val(),
                    url = $form.attr('action');

                /* Send the data using post */
                var posting = $.post(url, {
                    s: term
                });

                /* Put the results in a div */
                posting.done(function(data) {
                    var content = $(data).find('#content');
                    $("#result").empty().append(content);
                });
            });
        </script>
    </body>
</html>

গুরুত্বপূর্ণ তথ্য

ওআউথ ব্যবহার না করে বা সর্বনিম্ন এইচটিটিপিএস (টিএলএস / এসএসএল) ব্যবহার না করে দয়া করে সুরক্ষিত ডেটা (ক্রেডিট কার্ড নম্বর, এসএসএন, পিসিআই, এইচআইপিএ, বা লগইন সম্পর্কিত যে কোনও কিছু) জন্য এই পদ্ধতিটি ব্যবহার করবেন না please


@ abc123 আমি কীভাবে এতে অনুমোদনের অনুরোধ শিরোনাম সেট করতে পারি? আমি চেষ্টা করেছি beforeSend: function (xhr) { xhr.setRequestHeader("Authorization", "*****"); xhr.setRequestHeader("contentType", "application/json;charset=UTF-8"); },তবে এটি কোনও শিরোনাম সেট করে না
mahendra kawde

@ মহেন্দ্রকাওয়াদে আপনার ব্যবহারের দরকার হবে যা আপনি চাইলে $.ajaxআমি উদাহরণ লিখতে পারি তবে এটি সত্যিই একটি পৃথক প্রশ্ন
abc123

@ abc123 এর জন্য আমার থ্রেড শুরু হয়েছে। আমাকে এটি আপনার সাথে শেয়ার করুন।
মহেন্দ্র কাওদে

1
আমরা কি ফর্ম পোস্টটি একেবারেই এড়াতে পারি এবং কেবলমাত্র একটি বোতামের (যা কোনও এইচটিএমএল বোতাম যা কোনও ফর্ম ডিভের অংশ নয়) ক্লিক হ্যান্ডলারটিতে jquery পোস্ট করতে পারি। এইভাবে ইভেন্ট.প্রিভেন্টডিফাল্টের প্রয়োজন হবে না?
haর্ষvchawla

1
অবশ্যই অবশ্যই, তবে এইচটিএমএল উপাদান থেকে টানা ভেরিয়েবলগুলির জন্য আপনার নির্বাচিত জিজ্ঞাসাটি আলাদা
abc123

26
var postData = "text";
      $.ajax({
            type: "post",
            url: "url",
            data: postData,
            contentType: "application/x-www-form-urlencoded",
            success: function(responseData, textStatus, jqXHR) {
                alert("data saved")
            },
            error: function(jqXHR, textStatus, errorThrown) {
                console.log(errorThrown);
            }
        })

1
কলটি শেষ হয়ে গেলে সাফল্য / সম্পূর্ণ ফাংশনটি ঘটবে এবং এটি সার্ভার থেকে 200 ওকে গ্রহণ করবে
বরুণ এস

হাই আমি রাখলাম: $ (ডকুমেন্ট)। প্রস্তুত (ফাংশন () {$ ('# ফর্ময়েড') url ", ডেটা: পোস্টডেটা, কন্টেন্টটাইপ:" ছাত্রফরমআইনসার্ট.এফপি ", সাফল্য: ফাংশন (রেসপন্সডাটা, টেক্সটস্ট্যাটাস, জকিএক্সএইচআর) {সতর্কতা (" ডেটা সংরক্ষিত ")}, ত্রুটি: ফাংশন (jqXHR, টেক্সটস্ট্যাটাস, ত্রুটি ট্র্রাউন) so কনসোল.লগ ( ত্রুটি ত্রাউন);}})}); এটি আসলে কাজ করছে না .. পিএইচপি পক্ষের কোনও সংশোধন প্রয়োজন?
অলিভিরা

4
ভাল উদাহরণ এবং ভাল লিখেছেন, দয়া করে কোনও উত্তর পোস্ট করুন তবে কোনও ব্যাখ্যা ছাড়াই কেবল উদাহরণ কোড নয়।
abc123

2
আমি যে ফর্মটি পোস্ট করতে চাই তার সাথে এটি কীভাবে সংযুক্ত করব তা পাই না
পাইওটার কামোদা

কেন কোন ব্যাখ্যা নেই?
ধনী

3

আপনি যদি যোগ করুন:

jquery.form.min.js

আপনি কেবল এটি করতে পারেন:

<script>
$('#myform').ajaxForm(function(response) {
  alert(response);
});

// this will register the AJAX for <form id="myform" action="some_url">
// and when you submit the form using <button type="submit"> or $('myform').submit(), then it will send your request and alert response
</script>

বিঃদ্রঃ:

আপনি সহজ use ('ফরম') ব্যবহার করতে পারেন above উপরের পোস্টে প্রস্তাবিত হিসাবে সিরিয়ালাইজ করুন (), কিন্তু এটি ফাইল ইনপুটগুলির জন্য কাজ করবে না ... এজ্যাক্সফর্ম () উইল করবে।

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