【发布时间】:2018-01-18 20:34:41
【问题描述】:
我正在向一个名为 update.php 的 PHP 文件发送一个数组,并且在该脚本的所有先前版本中它都可以正常工作,但由于某些奇怪的原因,它在这种情况下无法正常工作。
这里是文件:
var phpLocation = '/admin/_backend' + $( this ).attr("action"),
usergroup = $('input:hidden[name="usergroup"]').val(),
serializedData = $('input:checkbox[name="permission"]:checked').map(function () {
return this.value;
}).get();
var ajaxData = {'usergroup_permissions': serializedData, 'usergroup' : usergroup};
$.ajax({
type: "POST",
url: phpLocation,
data: ajaxData,
success: function(data){
$("#post_reply").html(data);
console.log( ajaxData );
}
});
当尝试从数组中抓取 usergroup_permissions 并将其转换为以逗号分隔的列表时,它似乎不起作用。
即使使用$_POST['usergroup_permissons'] 似乎也不起作用..
$permission_list = implode(",", $_POST['usergroup_permissions']);
print_r( $_POST ); 返回:
【问题讨论】:
-
serializedData 末尾的 .get() 是什么?我们可以看看 console.log(serializedData) 的结果吗?另外,该脚本是在绘制 DOM 之后运行的吗?
-
@Salketer 老实说我不太确定,但它在获取数组时有效。我将编辑原始帖子以包含
console.log( ajaxData );的图像 -
$_POST 的 print_r() 或 var_dump() 会很快告诉您问题所在。
-
print_r()输出中的数组键与ajaxData中的键不匹配。具体来说,ajaxAdata包含usergroup_permissions,而print_r()显示permission。从您提供的代码中我看不出为什么会发生这种情况,但我怀疑这是指向原因的一个很好的指针。 -
这没有意义。您的
ajaxData containsusergroup_permissions` 和usergroup但您的print_r显示permission而不是usergroup_permissions。您确定要发布到正确的脚本吗?或者..随机猜测您的后端设置,但我假设您可能有路线/视图并且您没有引用正确的参数?