2017-02-23 49 views
1

Я пытаюсь вызвать функцию, используя ajax в подменю adminpress admin. Вот мой код.Ajax вызов в wordpress не переходит к admin-ajax.php

jQuery('#deleteProj').submit(ajaxSubmit); 

function ajaxSubmit(){ 
    var tobeDeleted = jQuery(this).serialize(); 
    alert(tobeDeleted); 
    jQuery.ajax({ 
    type:"POST", 
    url: ajaxurl, 
    data: tobeDeleted, 
    success:function(){ alert(tobeDeleted);}, 
    error:function(errorThrown){alert(errorThrown);} 
    }); 
    return false; 
} 

Однако код открывает новую страницу запрашивая файл admin.php выглядит следующим образом:

wp/wp-admin/admin.php?q=id&action=deleteproj 

Я действительно в недоумении, почему это происходит. Я вызываю функцию из меню в админ моего плагина

Update

Проблема оказалась в том, что я должен был определить функции PHP на главном файле моего плагина. Я также убедился в том, что вы точно определяете местоположение admin-ajax.php, что позволило jQuery правильно выполнить.

+0

кажется, что вы перенаправляете вместо ajaxing – madalinivascu

+0

изменений в OnClick не помогли, это могло быть вызвано я пытаюсь вызвать внутри администратора. PHP? – jackana3

+0

Вы уверены, что у вас есть js на вашей странице, завернутый в документ, готовый к заявлению? – madalinivascu

ответ

0

Похоже, вы перенаправляют вместо ajaxing, попробуйте изменить отправки событие щелчка события

jQuery('#deleteProj').find('[type="submit"]').click(function(e){ 
    e.preventDefault(); 
    var tobeDeleted = jQuery(this).serialize(); 
    alert(tobeDeleted); 
    jQuery.ajax({ 
    type:"POST", 
    url: ajaxurl, 
    data: tobeDeleted, 
    success:function(){ alert(tobeDeleted);}, 
    error:function(errorThrown){alert(errorThrown);} 
    }); 
}); 
1

Попробуйте это:

jQuery('#deleteProj').submit(function() { 
    var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>"; 
    var formData= jQuery(this).serialize(); 
    jQuery.ajax({ 
    url:ajaxurl, 
    action:'function_name', 
    data:formData, 
    type: "POST", 
    success: function(data) { 
     // return 
    } 
    }); 
    return false; 
}); 

Привет :)

0

Если у вас есть написав код в стороне вашего php-файла, тогда ответ из Gulshan верен, но если вы написали этот код в другом .js-файле, вы не можете получить доступ к нему в ajax-url. Затем вам нужно локализовать скрипт, чтобы добавить URL-адрес ajax.

Пожалуйста, следуйте пример кода:

wp_enqueue_script('mainscript', get_template_directory_uri() . '/js/main.js', array(), 'v1', true); 
wp_localize_script('mainscript', 'sitesettings', array('ajaxurl' => admin_url('admin-ajax.php'))); 

как для функции, которую нужно разместить ту же ручку [ «скриптом»], теперь в ваших main.js файл вам необходимо написать следующий код:

jQuery('#deleteProj').submit(function() { 
    var ajaxurl = sitesettings.ajaxurl; // here you are accessing the admin-ajax.php 
    var formData= jQuery(this).serialize(); 
    jQuery.ajax({ 
    url:ajaxurl, 
    action:'function_name', 
    data:formData, 
    type: "POST", 
    success: function(data) { 
     // return 
    } }); 
    return false; 
}); 

Надежда эта работа для вас

 Смежные вопросы

  • Нет связанных вопросов^_^