Я пытаюсь получить несколько данных из базы данных в файле .js темы wordpress. Я пытался с .post () jquery, но ничего не происходит.
Пожалуйста, также предложите мне альтернативу.
код в .js файле
jq.post("../abc.php", { name:"kumar", accId:window.accommodationId }, function(data,status) { alert("hello"); //alert("Data: " + data + "\nStatus: " + status); } );
код в файле abc.php
<?php global $wpdb; $max_minAge = $wpdb->get_results( "SELECT price_per_day FROM wp_byt_accommodation_vacancies where accommodation_id='1741'" ); echo $max_minAge[0]->price_per_day; ?>
вы можете использовать wp_ajax-крючки, как это, в файле functions.php
// script atyle add at frontend add_action( 'wp_enqueue_scripts','my_scripts_style'); function my_scripts_style() { wp_enqueue_script( 'scriptid', PATH_TO . 'script.js', array('jquery') ); // localize the script wp_localize_script( 'scriptid', 'myAjax', array( 'url' =>admin_url( 'admin-ajax.php' ),'nonce' => wp_create_nonce( "ajax_call_nonce" ))); }
Затем добавьте ajax hook
// action for execute ajax from frontend add_action( 'wp_ajax_nopriv_execute_ajax','execute_ajax'); function execute_ajax() { $nonce = check_ajax_referer( 'ajax_call_nonce', 'nonce' ); if($nonce==true) { // here you will perform all the db communication get data from db and send it to the view area. echo 'test this'; die(); } }
то в вашем js-файле, который вы включили через enque_script
выше. использовать это
jQuery(function(){ jQuery('.click-onthis').live('click', function(){ // get data by click var data = { action: 'execute_ajax', nonce: myAjax.nonce, // anyother code etc }; jQuery.post( myAjax.url, data, function(response) { if(response=='success') { } }); }); });
jquery click-on-this
будет работать, когда вы нажмете на ссылку, которую вы можете связать с загрузкой или любым другим событием
Вы можете использовать jQuery AJAX get
:
$.get( "../abc.php", function( data ) { alert( "Data Loaded: " + data ); });
Полезно знать: поскольку вы получаете данные из файла, вы должны использовать GET
.