我有一个Javascript对象数组,在使用AJAX处理之前,我使用JSON.stringify()将其转换为字符串。
在服务器端,我要做的就是验证是否设置了正确的$_POST["flavors"]
变量,并输出它的内容。我已经验证(通过一个简单的条件)$_POST["flavors"]
正在设置,但我不知道如何修改ajax调用(或PHP)以正确输出它的内容。
(数组函数)
flavors = [];
function wholesaleAJAX() {
var sizeSelect = $('form#wholesale-size-form input:checked');
if (sizeSelect.val() === 'regularBag') {
$('select[name="wholesale-flavors-regular"] option:selected').each(function() {
name = $(this).text();
qty = $(this).closest('.row').find('div.large-3 select[name="wholesale-flavors-regular-count"] option:selected').text();
flavors.push(new FlavorSelects(name, qty));
});
} else if (sizeSelect.val() === 'largeBag') {
$('select[name="wholesale-flavors-large"] option:selected').each(function() {
name = $(this).text();
qty = $(this).closest('.row').find('div.large-3 select[name="wholesale-flavors-large-count"] option:selected').text();
flavors.push(new FlavorSelects(name, qty));
});
}
(对数组进行字符串化并处理AJAX)
stringArray = JSON.stringify(flavors);
$.ajax({
type:"POST",
url: "/wp-admin/admin-ajax.php",
data: {
action: "returnHash",
flavors: stringArray
},
success:function(data){
$("#ajax").html(data);
}
});
(PHP用于处理functions.php中的AJAX)
function returnHash() {
if (isset($_POST["flavors"])) {
$flavors = json_decode($_POST["flavors"]);
print_r($flavors);
} else {
echo 'Not Set';
}
die();
}
add_action('wp_ajax_returnHash', 'returnHash');
add_action('wp_ajax_nopriv_returnHash', 'returnHash');