Wordpress ajax帖子无法正常工作无法捕获信息

时间:2016-03-22 08:04:07

标签: javascript php jquery ajax wordpress

我在wordpress中制作了以下ajax帖子:

(function($) {
$('.selectas').change(function() {

        action = 'post_selectas',
        data = {option : selectedValue};

        jQuery.post(ajaxurl, data, function(response) {
            console.log("Duomenys issiusti !" + response);
        });
    });
 })(jQuery);

然后ajax发布在这个页面,控制台说它工作但我无法捕捉到信息......这是我的所有功能

    function select_skript() {
    if (is_admin() ) {
        $scriptsrc = get_stylesheet_directory_uri() . '/dist/scripts/';
        wp_register_script( 'selectas', $scriptsrc . 'selectas.js', 'jquery', '1.0',  true );
        wp_enqueue_script( 'selectas' );

        $translation_array = array( 'templateUrl' => get_stylesheet_directory_uri() );
        wp_localize_script( 'selectas', 'selectas_js', $translation_array );
    }
}

add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\\select_skript' );

function post_selectas(){

    $id_nr = $_REQUEST['data'];
    $ids = $_POST['data'];

    return "$id_nr or $ids";
    return "test";

  }

函数不返回任何数据测试或ids ....问题在哪里???

1 个答案:

答案 0 :(得分:0)

试试这个:

<?php

add_action( 'admin_enqueue_scripts', 'select_skript' );

function select_skript() {
    if (is_admin() ) {
        $scriptsrc = get_stylesheet_directory_uri() . '/dist/scripts/';
        wp_register_script( 'selectas', $scriptsrc . 'selectas.js', 'jquery', '1.0',  true );
        wp_enqueue_script( 'selectas' );

        $translation_array = array(
            'templateUrl' => get_stylesheet_directory_uri(),
        );
        wp_localize_script( 'selectas', 'selectas_js', $translation_array );
    }
}

add_action( 'wp_ajax_post_selectas', 'post_selectas_callback' );

function post_selectas_callback(){

    $id_nr = $_REQUEST['data'];
    $ids = $_POST['data'];

    // return "$id_nr or $ids"; // the or in return won't work; see http://stackoverflow.com/a/14394447/629127
    echo "test";

    die();
}

根据AJAX in Plugins,您需要将函数挂钩到wp_ajax_{function_name} hook。

add_action( 'wp_ajax_post_selectas', 'post_selectas_callback' );

你错过die()(或wp_die(),应该是相同的)立即终止并返回正确的回复。