Wordpress: получить json - js в php

У меня есть объект JSon на странице js. Я хочу получить эти данные на странице php.

Страница: ajax.js:

var campi = {0: {1: ' ', 2: ' ', 3: ' '}};
campi=JSON.stringify(campi); //thank you @Musa
$.ajax({
    url: example_ajax_obj.ajaxurl,
    type: 'POST',
    data: {
        'action': 'example_ajax_request',
        'campi' : campi
    },
    success:function(data) {
        console.info(campi);             
    },
    error: function(errorThrown){
        console.info(errorThrown);
    }
});

Страница: page.php

function example_ajax_request() {
    $campi = $_POST['campi']; 
    echo "<script>console.info( 'Debug Objects: " . $campi . "' );</script>";
    $json_data = json_decode($campi, true);
    echo "<script>console.info( 'Debug Objects: " . $json_data . "' );</script>";
}
add_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );
add_action( 'wp_ajax_nopriv_example_ajax_request', 'example_ajax_request' );
add_action( 'wp_enqueue_scripts', 'example_ajax_request' );

Консоль показывает мне:

-Debug Objects: // из-за echo "console.info ('Debug Objects:". $ Campi. "');";

-Debug Objects: массив // из-за echo "console.info ('Debug Objects:". $ Json_data. "');";

{0: {1: '', 2: '', 3: ''}}

Я не могу понять причину, по которой это не работает, и я не знаю, как отлаживать. Спасибо вам, ребята

Видите ли вы, что исходящий сетевой запрос выполнен с помощью инструмента проверки вашего веб-браузера? Вы импортировали библиотеку jQuery в свой javascript? Любая ошибка в консоли JS? Изменить Почта на ПОЧТА?

Matt Clark 02.04.2018 20:25

Я вижу console.info (campi); и это правильно. JS Consolle не показывает никаких ошибок. Я перешел на "POST", но ничего не изменилось.

Federico Della Torre 02.04.2018 20:40

Вы видите исходящий сетевой запрос?

Matt Clark 02.04.2018 20:42

Я использовал «инспектировать», «сеть» и вижу файлы «ajax.js», «page.php» отсутствует. Я вижу файл. Это то, о чем вы просите? Извините, но я новичок в отладке

Federico Della Torre 02.04.2018 20:48
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
4
162
1

Ответы 1

campi - это не JSON, вам придется преобразовать его в JSON, прежде чем отправлять

$.ajax({
    url: example_ajax_obj.ajaxurl,
    type: 'post',
    data: {
        'action': 'example_ajax_request',
        'campi' : JSON.stringify(campi) //<-- here
    },
    success:function(data) {
        console.info(campi);             
    },
    error: function(errorThrown){
        console.info(errorThrown);
    }
});

Я преобразовал с помощью stringify. Я вижу это правильно в консоли, но не могу использовать на странице php.

Federico Della Torre 02.04.2018 20:49

Другие вопросы по теме