Sinakop namin ang mga pangunahing mekanika ng jQuery $.ajax() na pamamaraan. Ngayon ay isang magandang ideya na isaalang-alang ang mga kaso mula sa tunay na kasanayan: kung paano at mula sa kung saan ka makakakuha ng data para sa paghahatid sa isang kahilingan ng Ajax.
Pagtanggap ng data mula sa form.Mayroong ilang mga paraan upang makakuha ng data mula sa mga field ng form:
Pag-isipan natin ang huling dalawa at hindi gaanong kung paano makakuha ng data ( simple lang ang lahat dito), ngunit sa kung paano iproseso ang mga ito sa gilid ng server. Kunin, halimbawa, ang form na ito:
HTML ( index.html file)
BUONG PANGALAN:
Email:
Kasarian Lalake Babae
Upang makatanggap ng mga liham:
Oo
Hindi
At isulat natin itong JS code
jQuery( script.js file)
$(function())( $("#my_form").on("submit", function(e)( e.preventDefault(); var $that = $(this), fData = $that.serialize(); / / i-serialize ang data // OR // fData = $that.serializeArray(); $.ajax(( url: $that.attr("action"), // kunin ang path sa handler mula sa attribute na uri ng aksyon: $that.attr( "paraan"), // paraan ng paglilipat - kinuha mula sa data ng katangian ng pamamaraan: (form_data: fData), dataType: "json", tagumpay: function(json)( // Kung matagumpay na nakumpleto ang kahilingan. .. if(json)( $that.replaceWith(json); // palitan ang form ng data na natanggap sa tugon ) ));
Ngayon magsulat tayo ng isang handler sa paraang malinaw na makita ang pagkakaiba sa pagitan ng serialize() at serializeArray() na mga pamamaraan
PHP handler ( tagapangasiwa ng file.php)
Robert Sheckly
ito ay kinakailangan, bilang karagdagan sa pagtukoy ng bagong file address - serverAddr ="http://zykov/data.xml", upang mapalitan sa function
handleStateChange()
resp=xmlHttp.responseText;
resp=xmlHttp.responseXML.getElementsByTagName("pangalan").firstChild.data;
Pagkatapos sa halip na isang mensahe
Nagpadala ang server: Hello, client!
may lalabas na mensahe
Ang server ay isinumite ni: Robert Sheckly
Ang AJAX ay isang pangkat ng mga teknolohiya na ginagamit sa web development upang lumikha ng mga interactive na application. Pinapayagan ka ng AJAX na maglipat ng data mula sa server nang hindi nire-reload ang pahina. Sa ganitong paraan makakakuha ka ng napakakahanga-hangang mga resulta. At ang library ng jQuery ay lubos na pinasimple ang pagpapatupad ng AJAX gamit ang mga built-in na pamamaraan.
Upang ipatupad ang teknolohiya, gamitin ang $.ajax o jQuery.ajax na paraan:
$.ajax(properties) o $.ajax(url [, properties])
Ang pangalawang parameter ay idinagdag sa bersyon 1.5 ng jQuery.
url - address ng hiniling na pahina;
mga katangian - humiling ng mga katangian.
Para sa kumpletong listahan ng mga opsyon, tingnan ang dokumentasyon ng jQuery.
Sa tutorial na ito ginagamit namin ang ilan sa mga pinakakaraniwang ginagamit na parameter.
tagumpay (function) - ang function na ito ay tinatawag pagkatapos na matagumpay na nakumpleto ang kahilingan. Ang function ay tumatanggap mula 1 hanggang 3 mga parameter (depende sa bersyon ng library na ginamit). Ngunit ang unang parameter ay palaging naglalaman ng data na ibinalik mula sa server.
data (object/string) - data ng user na ipinasa sa hiniling na pahina.
dataType (string) - posibleng mga value: xml, json, script o html. Paglalarawan ng uri ng data na inaasahan sa tugon ng server.
uri (string) - uri ng kahilingan. Mga posibleng halaga: GET o POST. Default: GET.
url (string) - URL para sa kahilingan.
Halimbawa 1Madaling paglipat ng teksto.
$.ajax(( url: "response.php?action=sample1", tagumpay: function(data) ( $(".results").html(data); ) ));
Mayroong .result div element para sa tugon.
Naghihintay ng sagot
Ibinabalik lang ng server ang string:
Echo "Halimbawa 1 - matagumpay na nakumpleto ang paglipat";
Halimbawa 2Ipinapasa namin ang data ng user sa script ng PHP.
$.ajax(( type: "POST", url: "response.php?action=sample2", data: "name=Andrew&nickname=Aramis", tagumpay: function(data)( $(".results").html( data);
Ibinabalik ng server ang isang string na may ipinasok na data dito:
Echo "Halimbawa 2 - matagumpay na nakumpleto ang paglipat. Mga Parameter: name = " . $_POST["pangalan"] . ", palayaw=" . $_POST["palayaw"];
Halimbawa 3Pagpasa at Pagpapatupad ng JavaScript Code
$.ajax(( dataType: "script", url: "response.php?action=sample3", ))
Isinasagawa ng server ang code:
Echo "$(".results").html("Halimbawa 3 - Pagpapatupad ng JavaScript");";
Halimbawa 4Gumagamit kami ng XML. Maaaring gamitin ang halimbawa upang gumana sa panlabas na XML, halimbawa, isang RSS feed.
$.ajax(( dataType: "xml", url: "response.php?action=sample4", tagumpay: function(xmldata)( $(".results").html(""); $(xmldata).find ("item").bawat(function())( $(" ").html($(this).text()).appendTo(".results"); ) ));
Dapat ibalik ng server ang XML code:
Header("Uri ng Nilalaman: application/xml; charset=UTF-8"); echo