Mon code est le suivant:
$("#member_country").change(function() {
var country = $(this).val();
alert(country);
var ajax_url_mtypes = ins_membership_ajax.ajax_url + '?action=ins_get_membershiptypes_from_country&country='+country;
alert(ajax_url_mtypes);
jQuery.ajax({
url:ajax_url_mtypes,
method:'GET',
contentType: "application/json;charset=utf-8",
success:function(response) {
//var resp = $.trim(response);
alert(response);
//$("#ins-member-profile-select-state").html(resp);
}
});
add_action('wp_enqueue_scripts',array(INS_Membership::get_instance(),'ins_event_front_scripts'));
public function ins_event_front_scripts(){
wp_register_script('member-front-script',plugins_url('/js/member-front-script.js', __FILE__),array('jquery'),'1.1',true);
//localize script for ajax url
wp_localize_script( 'member-front-script','ins_membership_ajax', array(
'ajax_url' => admin_url('admin-ajax.php')
));
wp_enqueue_script('member-front-script');
//enqueue styles
wp_register_style('member-front-styles',plugins_url('/css/member-front-styles.css', __FILE__));
wp_enqueue_style('member-front-styles');
}
add_action('wp_ajax_ins_get_membershiptypes_from_country',array(INS_Membership::get_instance(),'ins_get_membershiptypes_from_country_callback'));
Je reçois une réponse 0 pour l'appel Ajax. Que dois-je faire pour résoudre ce problème?
Lorsque vous définissez un gestionnaire Ajax, vous devez envisager de définir à la fois les utilisateurs connectés et les utilisateurs non connectés. Vous pouvez le faire en utilisant:
add_action('wp_ajax_my_handler', 'callback_function');
add_action('wp_ajax_nopriv_my_handler', 'callback_function');
Maintenant, quant à votre question. Nous pouvons transformer ce code en un noeud final REST, si cela vous intéresse, ce qui est plus rapide et plus facile à configurer. Commençons par définir un itinéraire.
add_action( 'rest_api_init', function () {
register_rest_route( 'karts', '/ins_get_membershiptypes_from_country/', array(
'methods' => 'GET',
'callback' => 'ins_get_membershiptypes_from_country_callback'
) );
});
À ce stade, nous pouvons exécuter notre quête en accédant à:
www.example.com/wp-json/karts/ins_get_membershiptypes_from_country/
Maintenant, l'appel Ajax. Utilisez-le pour localiser votre script et transmettez l'URL du site:
wp_localize_script( 'member-front-script','ins_membership_ajax', array(
'ajax_url' => site_url()
));
Nous pouvons donc accéder au chemin dans notre appel Ajax:
$("#member_country").change(function() {
var country = $(this).val();
alert(country);
var ajax_url_mtypes = ins_membership_ajax.ajax_url + '/kartsins_get_membershiptypes_from_country';
alert(ajax_url_mtypes);
jQuery.ajax({
url:ajax_url_mtypes,
method:'GET',
data : { country : country},
dataType: 'json',
success:function(response) {
//var resp = $.trim(response);
alert(response);
//$("#ins-member-profile-select-state").html(resp);
}
});
Ce n’est pas que j’ai défini un type de données JSON pour l’appel. De cette façon, vous obtiendrez une réponse Json par défaut.