ajax is returning 0

时间:2017-06-23 作者:Vipin

这是我第一次尝试在WordPress中启动ajax。我知道我犯了一个错误,就是不让我的ajax运行,所以请帮我弄清楚。

这是我的js代码-

enter image description here

这是我的ajax代码-

enter image description here

1 个回复
最合适的回答,由SO网友:Biswa Bandhu Bhandary 整理而成

您需要按照以下步骤在WordPress中正确调用ajax函数,

注册并本地化您的脚本,例如。

wp_register_script(
      \'*handle_name*\'
    , *js_file_path*
    , array(
        *dependency_name*
    )
    , true
    , true
);
它将在页脚加载脚本。请参阅以下链接:https://developer.wordpress.org/reference/functions/wp_register_script/

wp_localize_script(
      \'*handle_name*\'
    , \'*a_unique_name_to_call_this_object*\'
    , array(
        \'ajaxurl\' => admin_url( \'admin-ajax.php\' ),
        \'if_require_any_more_field\' => \'necessary_value\',
    )
);
它将创建一个具有两个属性的js对象,ajaxurl 以及if\\u require\\u any\\u more\\u字段。请参阅以下链接:https://codex.wordpress.org/Function_Reference/wp_localize_script

然后将脚本排队wp_enqueue_script(\'*handle_name*\');

在javascript/jQuery代码中

    var formDate = jQuery(\'#tpform1\').serialize();                      
    var data = {
        action : \'trade_partners\',
        form : formData
    }

    $.post(unique_object_name.ajaxurl, data, function(response) {
        alert(response);           
    });
现在是时候在中编写php ajax调用函数了functions.php 文件(用于最佳实践)

add_action(\'wp_ajax_trade_partners\', \'custom_action\');
add_action(\'wp_ajax_nopriv_trade_partners\', \'custom_action\');     

function custom_action() {
    global $wpdb;
    echo "<pre>";
    print_r($wpdb);
}
如果您使用在该php文件中编写js代码,那么您可以直接跳入3rd step, 并且在script tag 您需要创建一个具有ajaxurl的变量,例如:var ajaxurl = "<?php echo admin_url( \'admin-ajax.php\' ); ?>"; 并修改实际ajax函数调用的行,

 $.post(ajaxurl, data, function(response) {
     alert(response);           
 });

结束

相关推荐

Customizer AJAX using buttons

我在wordpress自定义程序中添加了一个新的自定义按钮,我的目标是在自定义程序中创建一个按钮,然后在另一个自定义程序中启动特定功能。php文件。我有两个问题,一个是,只有当我想要激发的函数在其中任何一个函数中时,它才会起作用。php或自定义自定义程序。php。我的第二个问题是,只有当它是活动主题时,它才起作用。我对ajax和定制器还很陌生,所以感谢您的帮助。 //////////////////////////////////////////////////////// inside m