Функция Ajax возвращает данные на 1 в конце - PullRequest
1 голос
/ 01 июля 2019

Я получаю HTML-код с Ajax.Я получаю код.Но в конце я получаю 1 (или 11).

add_action( 'wp_ajax_nopriv_getCart', 'getCart' );
add_action( 'wp_ajax_getCart', 'getCart' );
function getCart(){
    echo get_cart_content();
    die();
    return;
}
function get_cart_content() {
    $cartContent = '';
    $cartContent = require_once('wps-cart-content.php');
    $cartContent .= require_once('wps-cart-footer.php');
    return $cartContent;
}
$.ajax({
    type: "GET",
    url: '/wp-admin/admin-ajax.php',
    data: {
       action: 'getCart',
    },
    success: function (data) {
        console.log(data);
    },
    error: function (jqXHT, textStatus, errorThrown) 
        {console.log('Fehler');}
});

Я заметил, что функция возвращает только один раз 1, если я вызову require_once только один раз.Если я возвращаю значение без вызова get_cart_content(), в конце моего кода также не будет 1

Я много пробовал ... как dataType: html или json и json_decode.Я также попробовал require, require_once, include_once include и т. Д. В конце кода всегда есть 11 ... а также, если я регистрирую код, он закомментируется, но если я добавлю его в свой документ, он будет отображаться нормально.Я думаю, это не проблема, но может помочь.

            <!-- <a  href=" " class="button wps-sc-cont btn"></a> -->
    </div>
   </div>   
</div>11

1 Ответ

1 голос
/ 01 июля 2019

Нам нужно изменить код в соответствии с ниже.

add_action( 'wp_ajax_nopriv_getCart', 'getCart' );
add_action( 'wp_ajax_getCart', 'getCart' );

function getCart(){
    $response = array(
        'type' => 'success',
        'html' => get_cart_content()
    );
    wp_send_json_success($response);
    wp_die();
}
function get_cart_content() {
    ob_start();
    require_once('wps-cart-content.php');
    require_once('wps-cart-footer.php');
    return ob_get_clean();
}
$.ajax({
    type: "GET",
    url: '/wp-admin/admin-ajax.php',
    dataType: 'json',
    data: {
       action: 'getCart',
    },
    success: function (data) {
        switch(res.data.type) {
                case 'success' :
                       console.log(res.data.html)
                    break;
                case 'failure' :

                    break;
                default :
                    break;
            }
    },
    error: function (jqXHT, textStatus, errorThrown) 
        {console.log('Fehler');}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...