wordpress:获取json - js到php

时间:2018-04-02 18:21:53

标签: json ajax wordpress

我在js页面中有一个JSon对象。 我想在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.log(campi);             
    },
    error: function(errorThrown){
        console.log(errorThrown);
    }
});

Page:page.php

function example_ajax_request() {
    $campi = $_POST['campi']; 
    echo "<script>console.log( 'Debug Objects: " . $campi . "' );</script>";
    $json_data = json_decode($campi, true);
    echo "<script>console.log( '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' );

Consolle告诉我:

-Debug Objects://由于echo&#34; console.log(&#39; Debug Objects:&#34;。$ campi。&#34;&#39;);&#34 ;;

-Debug Objects:Array //由于echo&#34; console.log(&#39; Debug Objects:&#34;。$ json_data。&#34;&#39;);&#34; ;

{0:{1:&#39; &#39;,2:&#39; &#39;,3:&#39; &#39;}}

我无法弄清楚它不起作用的原因而且我不知道如何调试。 谢谢你们

1 个答案:

答案 0 :(得分:0)

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.log(campi);             
    },
    error: function(errorThrown){
        console.log(errorThrown);
    }
});