我在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;}}
我无法弄清楚它不起作用的原因而且我不知道如何调试。 谢谢你们
答案 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);
}
});