Php 管理员ajax不工作了?

Php 管理员ajax不工作了?,php,wordpress,Php,Wordpress,我正在后端创建一个学生表单类型插件,用于插入、更新、删除、列出数据 在我将数据保存到db之前,一切都很顺利。我知道所有使用$wpdb类的进程。我使用$wpdb完成了这项任务,但现在我使用admin ajax完成了这项任务 我在我的主插件文件中学习了AdminAjax应用程序,它可以正常工作。 但我必须在另一个页面st_db_进程中调用ajax。 在这里,我调用ajax,但它提供0输出 这是我的密码: 我的主要插件文件: /* Plugin Name: student management Plu

我正在后端创建一个学生表单类型插件,用于插入、更新、删除、列出数据

在我将数据保存到db之前,一切都很顺利。我知道所有使用$wpdb类的进程。我使用$wpdb完成了这项任务,但现在我使用admin ajax完成了这项任务

我在我的主插件文件中学习了AdminAjax应用程序,它可以正常工作。 但我必须在另一个页面st_db_进程中调用ajax。 在这里,我调用ajax,但它提供0输出

这是我的密码:

我的主要插件文件:

/*
Plugin Name: student management
Plugin URI: http://wordpress.org/plugins/student/
Description: This plugin is useful to add new student data,update data,delete data and list of all students.
Author: Jayendra Manek
Version: 1.0
Author URI:
*/

//Defining Constants
define( 'ST_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
define('ST_PLUGIN_URL',plugin_dir_url(__FILE__));

define('ST_VIEW_PATH', plugin_dir_path( __FILE__ ).'view/' );
define('ST_VIEW_URL', plugin_dir_url( __FILE__ ).'view/' );

define('ST_CLASS_PATH', plugin_dir_path( __FILE__ ).'classes/' );
define('ST_CLASS_URL',plugin_dir_url(__FILE__).'classes/');

global $table_name;
$table_name=$wpdb->prefix . 'student_management';

global $student_management,$st_db_process;
$student_management=new student_management();

global $student_ajaxurl;
$student_ajaxurl = admin_url('admin-ajax.php');

class student_management
{

    function __construct()
    {
        //Plugin Activation Hook
        register_activation_hook(__FILE__, array($this,'st_plugin_setup'));

        //menu action and load script
        add_action('admin_menu', array($this,'st_create_menu'));
        add_action('admin_enqueue_scripts',array($this,'st_load_script'));
        add_action('admin_enqueue_scripts',array($this,'st_include_class_files'));

    }

    function st_include_class_files()
    {
        require_once ST_CLASS_PATH.'st_db_process.php';
    }

    //creating main-menu,sub-menu
    function st_create_menu()
    {
        add_menu_page('All Students', 'Student Manage', 'manage_options', 'main-menu', array($this,'st_list_page'));
        add_submenu_page('main-menu', 'Add new Student', 'Add New Student', 'manage_options', 'add-new-student',array($this,'st_add_new_student_page'));
        add_submenu_page(null, 'Add new Student', 'Add New Student', 'manage_options', 'sub-menu',array($this,'st_add_new_student_page'));
        add_submenu_page(null, 'Update Student', 'update data', 'manage_options', 'sub-menu-update',array($this,'st_update_data_page'));
    }

    //list page
    function st_list_page()
    {
        require_once ST_VIEW_PATH . 'list.php';
    }

    //add new student page
    function st_add_new_student_page()
    {
        require_once ST_VIEW_PATH . 'add.php';
    }

    //update student data page
    function st_update_data_page()
    {
        require_once ST_VIEW_PATH . 'edit.php';
    }

    //Loading Script & Css
    function st_load_script()
    {
        wp_enqueue_script('bootstrap-js','//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js',array('jquery-cdn'),true);
        wp_enqueue_style('bootstrap-css','//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css',true);
        wp_enqueue_style('style-css',ST_PLUGIN_URL.('css/style.css'),true);
        wp_enqueue_script('validate-js',ST_PLUGIN_URL.('js/validate_data.js'),array('jquery'),'1.0',false);

    }


    // Creating New Database
    function st_plugin_setup()
    {
            global $wpdb;
            $table_name = $wpdb->prefix . 'student_management';
            $charset_collate = $wpdb->get_charset_collate();

            $sql = "CREATE TABLE $table_name (
            id mediumint(9) NOT NULL AUTO_INCREMENT,
            name varchar(100) NOT NULL,
            email varchar(100) NOT NULL,
            number int(10) NOT NULL,
            address text NOT NULL,
            PRIMARY KEY  (id)
        ) $charset_collate;";

            require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
            dbDelta($sql);
    }
}
js代码:

jQuery(document).ready(function($) {

});
function st_validate_add_data(){

    var name = jQuery('#name').val();
    var email=jQuery('#email').val();
    var number=jQuery('#pnumber').val();
    var address=jQuery('#address').val();
    var path=jQuery('#st-path').val();



    var flag=0;

    if(name=='')
    {
        jQuery('#name_error').html("Please enter student name");
        flag=1;
    }

    if(email=='')
    {
        jQuery('#email_error').html("Please enter student email");
        flag=1;
    }
    if(number=='')
    {
        jQuery('#number_error').html("Please enter student phone number");
        flag=1;
    }
    if(address=='')
    {
        jQuery('#address_error').html("Please enter student address");
        flag=1;
    }

    var data = {
        'action': 'my_action',
        'whatever': 1234
    };

    if(flag==0)
    {
        jQuery.ajax({
            type: 'POST',
            url: ajaxurl,
            dataType: 'json',
            data:'action=st_ajax_call',
            success:function(msg){
                alert(msg);
            },
            error: function(errorThrown) {
                alert(errorThrown);
            }
        });



    }
    return false;

}
我的数据库进程类(我想在其中调用ajax):

如果(!class_存在('st_db_进程')){
类st_db_进程
{
函数_u构造()
{
//检查_ajax_referer();
添加动作('wp_ajax_st_ajax_call',数组('this,'st_ajax_func'));
添加动作('wp_ajax_nopriv_st_ajax_call',数组($this,'st_ajax_func'));
}
函数st_ajax_func()
{
回声“;
require_once ST_CLASS_PATH.'st_db_process.php';
印刷品(“helloo”); 回声“;
require_once ST_CLASS_PATH.'st_db_process.php';
回声“;
require_once ST_CLASS_PATH.'st_db_process.php';
打印(邮政美元); 回声“;
require_once ST_CLASS_PATH.'st_db_process.php';
退出(); wp_die(); } 函数st_add_data11($table_name,$data) { 全局$wpdb,$table_name; $wpdb->insert($table\u name,$data); } 函数st_update_data($table_name,$data,$id) { 全局$wpdb,$table_name; $wpdb->update($table\u name,$data,$id); } 函数st_get_data($query,$type) { 全球$wpdb; $data=$wpdb->get_results($query,$type); 返回$data; } } 全球$st_db_流程; $st_db_进程=新的st_db_进程(); }
请帮忙,我这两天一直在做这件事。 我可以在我的主插件文件中调用ajax,但不能在我想要的类文件中调用ajax。

我自己得到了答案, st_db_process.php文件没有正确加载,我只需要将它放在主插件文件的顶部,它就可以正常工作了。 这是文件延迟加载的问题,我的代码是完美的。 这一行放在插件开始,插件工作

我自己得到了答案, st_db_process.php文件没有正确加载,我只需要将它放在主插件文件的顶部,它就可以正常工作了。 这是文件延迟加载的问题,我的代码是完美的。 这一行放在插件开始,插件工作


请检查您的控制台
ajaxurl
是否失败?是的,请检查控制台
ajaxurl
是否失败?是的,请检查控制台
ajaxurl
是否失败,但每次响应均为0