gpt4 book ai didi

PHP explode 正在删除第一个数组值

转载 作者:行者123 更新时间:2023-11-30 07:11:48 27 4
gpt4 key购买 nike

好吧,首先,如果之前有人问过这个问题,我很抱歉,我在过去的 12 个小时里筛选了数百个论坛主题,但还没有找到能准确回答这个问题的主题,所以这里开始吧。

我有一个我构建的页面,它有一个用户列表,当用户登录时会自动填充,每个用户都有一个复选框,允许主持人选择用户并在需要时将其删除。我正在使用 jQuery 将一个数组字符串发送到一个 php 页面,我试图在该页面中分解该字符串,遍历用户 ID 并从我们的数据库中删除传递的 ID。一切都非常好,除非我选择了多个用户。当我选择多个用户并将数组传递给 php 处理程序时,它会分解数组但只保留数组中的最后一个值,其余值丢失在脚本黑洞的某个地方。

这是我的 javascript 页面中的代码:

function rem_user() {  
var ids = $('input:checkbox[id=del]:checked').map(function(){
return this.value
}).get();
alert(ids);
jQuery("#rem_msg").load(controlpage, {AdmFnc: "rem_user", del_ids: ids}, getUsers);
}

然后这个数组被传递到 php 控制页面,由以下人员处理:

if (strcmp($AdmFnc, rem_user) == 0){
echo "";
$ids = trim($_POST['del_ids']);
$ids = explode(',',$ids);
if(is_array($ids)){
foreach($ids as $userid){
mysqli_query($dbc, "UPDATE webcastlogin SET logoutTime = '$current_time' WHERE userid = '$userid'") or die('Error setting logout time '.mysqli_error($dbc));
mysqli_query($dbc, "DELETE FROM weekly_users WHERE userid = '$userid'") or die('Error removing users '.mysqli_error($dbc));
}
echo 'Selected IDs removed';
} else if (empty($ids)) {
echo 'Code is wrong, no array sent';
} else {
mysqli_query($dbc, "UPDATE webcastlogin SET logoutTime = '$current_time' WHERE userid = '$ids'");
mysqli_query($dbc, "DELETE FROM weekly_users WHERE userid = '$ids'");
echo 'Selected ID removed';
}
}

正如您在我的 javascript 上看到的那样,我设置了一个警报,因此我可以验证发送的信息是否正确,据我从该警报中可以看出,它是一个 "," 分隔数组,所以这就是我在 php 端使用的来分解它。

我无计可施,试图弄清楚为什么当我通过 foreach 循环运行它时,我只得到数组中最后一项的值。

任何帮助将不胜感激,并且可以为将来的一些编码挑战节省我的头发。

谢谢

最佳答案

只需在 jQuery load 调用中更改 del_ids 的键名以包含一组空括号:

jQuery("#rem_msg").load(controlpage, {AdmFnc: "rem_user", "del_ids[ ]": ids}, getUsers);

现在,在 PHP 中,不再使用 trimexplode,值已经在数组中,因此您可以直接访问它们:

$ids = $_POST['del_ids'];

关于PHP explode 正在删除第一个数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1962693/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com