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