我通过$ .post()发送一个JS对象,我希望得到一个数组。
JS
var ajaxData = {action:"createuser"}
$("input[required]").each(function(){
var attr = $(this).attr("name");
ajaxData[attr] = $(this).val();
});
$.post(
daten.ajaxurl,
ajaxData,
function(data){
alert(data[0])
}
)
PHP
//Create a User
add_action('wp_ajax_nopriv_createuser','createuser');
function createuser () {
foreach ($_POST as $key => $value) {
if(empty($value)) {
$type = "error";
$content = "$key is empty";
echo array($type,$content);
wp_die();
}
}
}
作为回复我得到的总是一个字符串,所以如果我回显$ content,它会很好。
我已经读过您可以使用JSON并在添加DataTaype时自动编码:" JSON"。
但我不知道如何在PHP中正确解码它,等等。
答案 0 :(得分:1)
你不能只回显一个数组。在AJAX中,它被认为是在请求中返回JSON对象的默认值。你想要做的是从数组中创建一个JSON对象。您可以使用json_encode。
之后,你可以使用JS / jQuery中的JSON对象做你想做的任何事情。
答案 1 :(得分:0)
我会使用 wp_send_json(); 函数。这正是你要找的东西。
不要忘记最后加上 wp_die()。
wp_send_json():https://codex.wordpress.org/Function_Reference/wp_send_json
wp_die():https://codex.wordpress.org/Function_Reference/wp_die