{"id":25122,"date":"2021-05-31T11:04:00","date_gmt":"2021-05-31T08:04:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25122"},"modified":"2021-10-17T20:31:35","modified_gmt":"2021-10-17T17:31:35","slug":"kuinka-kayttaa-jquery-ajaxia-wordpressissa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-kayttaa-jquery-ajaxia-wordpressissa\/","title":{"rendered":"Kuinka k\u00e4ytt\u00e4\u00e4 jQuery Ajaxia WordPressiss\u00e4"},"content":{"rendered":"<p>Haluatko ottaa jQuery Ajaxin k\u00e4ytt\u00f6\u00f6n WordPressiss\u00e4? WordPress-aloittelijoille on aina vaikeuksia k\u00e4ytt\u00e4\u00e4 Ajaxia WordPressin kanssa. T\u00e4ss\u00e4 artikkelissa tutkitaan, miten Ajaxia k\u00e4ytet\u00e4\u00e4n WordPressiss\u00e4 ottamalla el\u00e4v\u00e4 esimerkki.<\/p>\n<h3>Miksi tarvitset jQuery Ajaxia verkkosivustolla?<\/h3>\n<p>Ajax (asynkroninen JavaScript ja XML) sallii verkkosivun p\u00e4ivityksen asynkronisesti. Se tarkoittaa, ett\u00e4 tiedot voivat l\u00e4hett\u00e4\u00e4 ja hakea palvelimelta asynkronisesti h\u00e4iritsem\u00e4tt\u00e4 olemassa olevan sivun n\u00e4ytt\u00f6\u00e4 ja toimintaa. Ajaxia k\u00e4ytt\u00e4m\u00e4ll\u00e4 voit muuttaa pieni\u00e4 tai suuria osia verkkosivusta p\u00e4ivitt\u00e4m\u00e4tt\u00e4 koko sivua. Se auttaa parantamaan k\u00e4ytt\u00f6kokemusta ja samalla s\u00e4\u00e4st\u00e4\u00e4 ylim\u00e4\u00e4r\u00e4ist\u00e4 kuormaa palvelimelle.<\/p>\n<p>Ajaxista tulee eritt\u00e4in suosittu verkkokehityksess\u00e4. Suurin osa verkkosivustoista k\u00e4ytt\u00e4\u00e4 mieluummin Ajaxia lataamaan sis\u00e4ll\u00f6n dynaamisesti. Muutamien teht\u00e4vien web-kehityksess\u00e4 sinun on k\u00e4ytett\u00e4v\u00e4 Ajaxia ilman mit\u00e4\u00e4n muuta vaihtoehtoa.<\/p>\n<p>T\u00e4m\u00e4n j\u00e4lkeen katsotaanpa, miten jQuery Ajaxia k\u00e4ytet\u00e4\u00e4n WordPressiss\u00e4.<\/p>\n<h3>P\u00e4\u00e4st\u00e4 alkuun<\/h3>\n<p>Ajaxin k\u00e4ytt\u00f6\u00f6notto WordPressiss\u00e4 on helppoa ja suoraviivaista. N\u00e4emme siit\u00e4 k\u00e4yt\u00e4nn\u00f6n esimerkin. Otetaan esimerkkin\u00e4 maan ja valtion avattavat valinnat. Kun k\u00e4ytt\u00e4j\u00e4 valitsee maan avattavasta valikosta, kaikki valitulle maalle osoitetut tilat tulisi t\u00e4ytt\u00e4\u00e4 valtion avattavassa valikossa. Ajaxin on teht\u00e4v\u00e4 t\u00e4m\u00e4 k\u00e4ytt\u00e4ytyminen.<\/p>\n<p>Sen saavuttamiseksi tarvitset 2 taulukkoa &#8211; wp_countries ja wp_states. N\u00e4iss\u00e4 taulukoissa sinun on pidett\u00e4v\u00e4 maan ja osavaltioiden v\u00e4linen suhde moniin. Katso alla olevat kuvakaappaukset.<\/p>\n<p><strong>Taulukko wp_countries<\/strong><\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20392-6081ead491f5f.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20392-6081ead491f5f.png\" alt=\"Kuinka k\u00e4ytt\u00e4\u00e4 jQuery Ajaxia WordPressiss\u00e4\" ><\/a><\/p>\n<p><strong>Taulukko wp_states<\/strong><\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20392-6081ead547fd7.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20392-6081ead547fd7.png\" alt=\"Kuinka k\u00e4ytt\u00e4\u00e4 jQuery Ajaxia WordPressiss\u00e4\" ><\/a><\/p>\n<p>Kun olet valmis tietojen rakentamiseen, luo maa-pudotusvalikko hakemalla tiedot maataulukosta seuraavasti.<\/p>\n<pre><code>&lt;?php\nglobal $wpdb;\n$aCountries = $wpdb-&gt;get_results( \"SELECT id, country FROM \".$wpdb-&gt;prefix.\"countries\" );\n\u00a0\n&lt;form method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;select class=\"countries\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"\"&gt;--&lt;?php _e('SELECT COUNTRY'); ?&gt;--&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php foreach ($aCountries as $country) { ?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"&lt;?php echo $country-&gt;id; ?&gt;\"&gt;&lt;?php echo $country-&gt;country; ?&gt;&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php } ?&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/select&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"load-state\"&gt;&lt;\/div&gt;\n&lt;\/form&gt;\n?&gt;<\/code><\/pre>\n<p>Olemme lis\u00e4nneet luokan &#8217;maat&#8217; valittuun tagiin, jota k\u00e4ytet\u00e4\u00e4n jQuery-koodissa maan tunnuksen saamiseksi. Lis\u00e4sin my\u00f6s tyhj\u00e4n div-luokan luokan &#8217;load-states&#8217;, johon tilan pudotusvalikko liittyy saatuaan vastauksen Ajax-puhelusta.<\/p>\n<h3>jQuery Ajax WordPressiss\u00e4<\/h3>\n<p>Seuraavaksi meid\u00e4n on kirjoitettava jQuery-koodi, joka antaa Ajax-puhelun palvelimelle ja k\u00e4sittelee vastauksen. Ajax-puhelun kirjoittamista varten sinun on sis\u00e4llytett\u00e4v\u00e4 JS-tiedosto. Luo <code>custom.js<\/code>tiedosto <code>js<\/code>aktiivisen teeman hakemistoon. Lis\u00e4\u00e4 t\u00e4m\u00e4 <code>custom.js<\/code>WordPress-ymp\u00e4rist\u00f6\u00f6n k\u00e4ytt\u00e4m\u00e4ll\u00e4 alla olevaa koodia, joka menee sis\u00e4lle <code>functions.php<\/code>.<\/p>\n<pre><code>function blog_scripts() {\n\u00a0\u00a0\u00a0\u00a0\/\/ Register the script\n\u00a0\u00a0\u00a0\u00a0wp_register_script( 'custom-script', get_stylesheet_directory_uri(). '\/js\/custom.js', array('jquery'), false, true );\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ Localize the script with new data\n\u00a0\u00a0\u00a0\u00a0$script_data_array = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ajaxurl' =&gt; admin_url( 'admin-ajax.php' ),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'security' =&gt; wp_create_nonce( 'load_states' ),\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0wp_localize_script( 'custom-script', 'blog', $script_data_array );\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ Enqueued script with localized data.\n\u00a0\u00a0\u00a0\u00a0wp_enqueue_script( 'custom-script' );\n}\nadd_action( 'wp_enqueue_scripts', 'blog_scripts' );<\/code><\/pre>\n<p>Kirjoita nyt jQuery-koodi, joka antaa Ajax-puhelun ja liitt\u00e4\u00e4 tilan pudotusvalikon sivulle.<\/p>\n<p><strong>custom.js<\/strong><\/p>\n<pre><code>jQuery(function($) {\n\u00a0\u00a0\u00a0\u00a0$('body').on('change', '.countries', function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var countryid = $(this).val();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(countryid != '') {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var data = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'action': 'get_states_by_ajax',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'country': countryid,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'security': blog.security\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$.post(blog.ajaxurl, data, function(response) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('.load-state').html(response);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0});\n});<\/code><\/pre>\n<p>T\u00e4\u00e4ll\u00e4 ilmoitin <code>data<\/code>muuttujan, joka sis\u00e4lt\u00e4\u00e4 <code>action<\/code>avaimen. <code>action<\/code>Avaimen merkkijonon tulisi olla teht\u00e4v\u00e4l\u00e4ht\u00f6inen. Haemme tiloja, joten pid\u00e4n sen nime\u00e4 get_states_by_ajax. Muut <code>data<\/code>muuttujan elementit ovat yksityiskohdat, jotka tulisi l\u00e4hett\u00e4\u00e4 Ajax-pyynt\u00f6ihin. Tavoitteenamme on hakea valtiota maan perusteella, joten ohitan maatunnuksen avaimella <code>country<\/code>.<\/p>\n<p>Nyt on aika suorittaa Ajax-puhelut WordPress-tavalla. Lis\u00e4\u00e4 alla olevat kaksi lausetta aktiivisen teeman <code>functions.php<\/code>tiedostoon.<\/p>\n<pre><code>add_action('wp_ajax_get_states_by_ajax', 'get_states_by_ajax_callback');\nadd_action('wp_ajax_nopriv_get_states_by_ajax', 'get_states_by_ajax_callback');<\/code><\/pre>\n<p>&#8217;wp_ajax&#8217; on kiinte\u00e4 etuliite k\u00e4ytett\u00e4ess\u00e4 Ajaxia WordPressiss\u00e4. Liit\u00e4 sitten toiminnan arvo siihen. Meid\u00e4n tapauksessamme se on get_states_by_ajax. Ensimm\u00e4isest\u00e4 parametrista tuli siis wp_ajax_get_states_by_ajax. Toinen parametri on takaisinkutsutoiminto, johon meid\u00e4n on kirjoitettava todellinen palvelinpuolen koodi. &#8217;wp_ajax_nopriv&#8217; on k\u00e4ytett\u00e4v\u00e4, kun suoritat k\u00e4ytt\u00f6liittym\u00e4n toimintoja.<\/p>\n<p>Kirjoita <code>get_states_by_ajax_callback<\/code>menetelm\u00e4\u00e4n koodi, joka palauttaa tilan pudotusvalikon. Voit m\u00e4\u00e4ritt\u00e4\u00e4 t\u00e4m\u00e4n menetelm\u00e4n <code>functions.php<\/code>tiedostossa.<\/p>\n<pre><code>function get_states_by_ajax_callback() {\n\u00a0\u00a0\u00a0\u00a0check_ajax_referer('load_states', 'security');\n\u00a0\u00a0\u00a0\u00a0$country = $_POST['country'];\n\u00a0\u00a0\u00a0\u00a0global $wpdb;\n\u00a0\u00a0\u00a0\u00a0$aStates = $wpdb-&gt;get_results( $wpdb-&gt;prepare( \"SELECT id, state_name FROM \".$wpdb-&gt;prefix.\"states WHERE cid = %d\", $country) );\n\u00a0\u00a0\u00a0\u00a0if ($aStates) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;select&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0foreach ($aStates as $state) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;option value=\"&lt;?php echo $state-&gt;id; ?&gt;\"&gt;&lt;?php echo $state-&gt;state_name; ?&gt;&lt;\/option&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0?&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/select&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;?php\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0wp_die();\n}<\/code><\/pre>\n<p>Koodiin rakennettu vastaus l\u00e4hett\u00e4\u00e4 sen takaisin jQuerylle. T\u00e4m\u00e4n vastauksen liit\u00e4mme sitten jQueryn avulla div-s\u00e4il\u00f6\u00f6n, jolla on luokan &#8217;load-state&#8217;.<\/p>\n<p>Mene sivullesi ja valitse maa. Sinun pit\u00e4isi n\u00e4hd\u00e4 valtion pudotusvalikko n\u00e4kyviin valitulle maalle.<\/p>\n<p>Toivon, ett\u00e4 ymm\u00e4rr\u00e4t kuinka k\u00e4ytt\u00e4\u00e4 Ajaxia WordPress-verkkosivustolla. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-wordpress-viesteja-ajax-lla\/\" title=\"Kuinka ladata WordPress Post AJAX: lla\" >Kuinka ladata WordPress Post AJAX: lla<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/ajax-tiedostojen-lataamisen-integrointi-wordpressiin\/\" title=\"Ajax-tiedostojen lataamisen integrointi WordPressiin\" >Ajax-tiedostojen lataamisen integrointi WordPressiin<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-kayttaa-jquery-automaattista-taydennysta-ajaxin-kanssa\/\" title=\"Kuinka k\u00e4ytt\u00e4\u00e4 jQuery-automaattista t\u00e4ydennyst\u00e4 Ajaxin kanssa\" >Kuinka k\u00e4ytt\u00e4\u00e4 jQuery-automaattista t\u00e4ydennyst\u00e4 Ajaxin kanssa<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Haluatko tiet\u00e4\u00e4, miten jQuery Ajaxia k\u00e4ytet\u00e4\u00e4n WordPressiss\u00e4? T\u00e4ss\u00e4 opetusohjelmassa. Olemme ottaneet esimerkin todellisesta maailmasta ja osoittaneet, kuinka voit k\u00e4ytt\u00e4\u00e4 Ajaxia<\/p>\n","protected":false},"author":1,"featured_media":21665,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[207,499,610],"tags":[843],"class_list":["post-25122","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elementor-6","category-laravel","category-uncategorized-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=25122"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25122\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21665"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=25122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=25122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=25122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}