【发布时间】:2020-04-09 09:20:46
【问题描述】:
我已经阅读了大量关于该主题的问题,但没有一个能够解决我的特定问题——我想我在 JS 中格式化对象数组的方式有问题。这是我的 Ajax 函数:
var marketing_prefs = [];
$('#save-marketing-prefs input').each(function() {
var tmp_array = {};
tmp_array['marketing_permission_id'] = $(this).val();
if ($(this).prop('checked')) {
tmp_array['enabled'] = 1;
} else {
tmp_array['enabled'] = 0;
}
marketing_prefs.push(tmp_array);
})
console.log(marketing_prefs);
$.ajax({
dataType: 'json',
type: 'POST',
url: ajax_object.ajaxurl,
data: {
action: 'acrew_save_mc_marketing_prefs',
marketing_prefs: marketing_prefs
},
success: function(response) {
console.log('#####', response);
},
error: function(response) {
console.error('!!!!!', response);
}
});
我正在做的是循环一个带有三个复选框的简单表单,并创建一个对象数组,然后这些对象将转到 Mailchimp。我的数据完好无损,但问题是我的布尔值作为字符串传入 PHP。我已经从使用“true”和“false”的 true 和 false 切换到使用 1 和 0 但它们也作为字符串出现。
我想我可以遍历数据并在 PHP 中构建一个新数组,但是当数据到达时,它非常接近正确,似乎它必须是不必要的。
如何以非字符串形式获取我的数据?
【问题讨论】:
-
GET/POST 数据没有任何指定数据类型的方法,一切都是字符串。
-
谢谢,@Barmer。是的,我在旅行中发现了这一点,但在接收端传递 1 和 0 可能会更好/更容易解释为 bool。
-
@KevinNugent 为什么你到底想要这个?