2017-07-24 51 views
0

我有一个JS文件夹内的JS文件在我的WP主题下面的代码:jQuery的岗位在WordPress

jQuery('#tarieven-submit').on('click', function(event) { 
    event.preventDefault(); 

    var dest = jQuery('#destination').val(); 
    var type = jQuery('input[name=taxiType]:checked', '#distance_form').val() 

    if (jQuery.trim(dest) != '' && type != '') { 
     jQuery.post('../HTA/wp-content/themes/HTA/ajax/tarieven.php', { destination: dest, type: type}, function(data) { 
      jQuery('#result').text(data); 
     }); 
    } 
}); 

我不能得到这个工作,即使是被派驻到位于文件正确的文件夹。我猜测它有一些错误的AJAX调用。但我似乎无法找到正确的方法。例如,我看到我需要在admin-ajax.php中执行AJAX调用,但是,如何在其中添加我的自定义代码?

+0

看到[这里](https://codex.wordpress.org/AJAX_in_Plugins) – Und3rTow

+0

你见过你的浏览器控制台吗?你有没有看到PHP的日志错误? – Ciccio

+0

在此发布您的网站网址,我们会尽力帮助您。 –

回答

2

你应该尝试做AJAX调用与WordPress的标准,创建一个AJAX调用,只需添加一个要处理您functions.php文件,例如,您的通话PHP函数,

function ajax_handler() { 
    // Do your stuff here; 

    wp_die(); // Always put this at the end, it is required by WordPress to end your call. 
} 

然后你用这个注册你的AJAX动作。

add_action('wp_ajax_ajax_handler', 'ajax_handler'); 
add_action('wp_ajax_nopriv_ajax_handler', 'ajax_handler'); // This is for unlogged users. 

所以,你的jQuery函数应该是这样的:

var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; // This is the WordPress AJAX handler file. 

jQuery('#tarieven-submit').on('click', function(event) { 
event.preventDefault(); 
var dest = jQuery('#destination').val(); 
var type = jQuery('input[name=taxiType]:checked', '#distance_form').val() 
if (jQuery.trim(dest) != '' && type != '') { 
    jQuery.post(ajaxurl, { destination: dest, type: type, action: "ajax_handler"}, function(data) { 
     jQuery('#result').text(data); 
    }); 
} 

通知的action参数我们派出我们的WordPress的AJAX处理程序文件(管理员-ajax.php)。它需要告诉WordPress我们的通话应该执行哪个功能/动作。