我已经从PHP会话变量创建了一个数组,现在我正在尝试使用ajax(在jQuery中)从数组中删除一个元素。
到目前为止,我已经得到了以下代码:
$val = $_SESSION['enquiry-basket'];
$array = explode($val);
foreach ($enquiries as $a => $q) {
if ($q == $_POST['product_id']) {
unset($array[$a]);
}
}
唯一的问题是,它不会删除该项目 任何人都可以解释原因,并告诉我如何解决它?
修改
对不起伙计们。我之所以提到jQuery,是因为我使用jQuery ajax调用来处理上面显示的PHP
ajax查询运行正常,因为它会在ajax返回成功后处理一些javascript好东西(从HTML中删除div)。
我添加了分隔符(不能相信我错过了它)但是元素没有' t仍然从阵列中移除。
我从来不擅长多维数组,所以打印的数组是:
Array ( [0] => 6 [1] => 8 )
看起来对我来说,但我是数组中的业余爱好者。 (6和8当然是我插入的字符串)
答案 0 :(得分:8)
explode
缺少第一个参数:
explode(',', $val);
答案 1 :(得分:2)
您要从$ array中删除项目,而不是从$ _SESSION ['inquiry-basket']中删除。
答案 2 :(得分:1)
爆炸功能应该有两个参数。但是你只给出了数组的名称。 爆炸(分离器,串,限位);
答案 3 :(得分:1)
如果我理解你正在尝试做什么,问题是JQuery运行客户端,这意味着服务器端的PHP数组在每个来自Ajax的请求之间消失。唯一剩下的数组是$ _SESSION。
如果您想使用AJAX,则需要直接从$ _SESSION中删除。任何其他东西都是无用的,因为数组和变量在每次调用之间“消失”。
答案 4 :(得分:1)
爆炸功能主要是一个问题,缺少第二个参数:
更改自:
$array = explode($val);
要:
$array = explode('~',$val); // ~ is a delimiter