我有一个插件,可以使用ajax_object.ajaxurl
. 两个AJAX请求都编码在同一个文件(emx functions.js)中。然而,似乎只有一个AJAX调用成功启动。我是否仅限于使用ajaxurl
仅针对单个AJAX请求,或者我可以使用相同的ajaxurl
. 我认为另一个AJAX调用不起作用的原因是由于冲突,因为它们都使用相同的ajaxurl
. 对吗?有没有更好的方法?
下面是我如何设置AJAX的:
function load_ajax_scripts() {
wp_enqueue_script( "emx-functions", plugin_dir_url( __FILE__ ) . \'emx-functions.js\', array( \'jquery\' ) );
wp_localize_script( \'emx-functions\', \'EMX\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
}
add_action(\'wp_print_scripts\', \'load_ajax_scripts\');
以下是来自emx函数的代码。js文件:
function disable_forms_ajax(){
var disable;
jQuery(document).ready(function(){
// if checkbox checked
if( jQuery(\'input[name="all_fields_or_not[]"]:visible:checked\').length == 1 ){
$disable = \'true\';
// take this out
alert(\'checked\');
} else {
$disable = \'false\';
// take this out
alert(\'unchecked\');
}
// get ticket_id
$ticket_id = jQuery(\'[value="Save Coupons"]:visible\')
.parent()
.parent()
.children(\'input:first\').val();
var data = {
action: \'hidden_form_fields\',
ticket_id: $ticket_id,
disable: $disable
};
jQuery.post(EMX.ajaxurl, data, function(response) {
alert(response);
});
return false;
});
}
function available_coupons_ajax(){
jQuery(document).ready( function($) {
// get ticket_id
$ticket_id = jQuery(\'[value="Save Coupons"]:visible\')
.parent()
.parent()
.children(\'input:first\').val();
// get checked coupon elements
$coupon_els = jQuery(\'input.button[value="Save Coupons"]\')
.closest(\'form[name="ticket-coupons"]:visible\')
.find(\'input:checked\');
// convert to array and get coupon codes
$coupon_codes = Array.prototype.slice.call($coupon_els).map(function(el){
return el.value.toLowerCase();
});
// prepare ajax call
var data = {
action: \'set_ticket_coupon_availability\',
ticket_id: $ticket_id,
coupon_codes: $coupon_codes
};
// ajax call
jQuery.post(EMX.ajaxurl, data, function(response) {
alert(response);
});
return false;
});
}
谢谢大家!