1

我已经从 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)。
我已经添加了分隔符(不敢相信我错过了它),但该元素仍然没有从数组中删除。
我从来不擅长多维数组,所以这里是打印的数组:

Array ( [0] => 6 [1] => 8 ) 

它看起来对我来说是正确的,但我是阵列的业余爱好者。(6和8当然是我插入的字符串)

4

5 回答 5

8

explode缺少第一个参数:

explode(',', $val);
于 2012-05-04T13:35:35.337 回答
2

您正在从 $array 中删除项目,而不是从 $_SESSION['enquiry-basket']。

于 2012-05-04T13:35:47.477 回答
1

主要是explode函数的问题,缺少第二个参数:

更改自:

$array = explode($val);

至:

$array = explode('~',$val);  // ~ is a delimiter
于 2012-05-04T13:48:45.367 回答
1

爆炸函数应该有两个参数。但是您只给出了数组的名称。爆炸(分隔符,字符串,限制);

于 2012-05-04T13:37:57.380 回答
1

如果我正确理解您正在尝试做什么,那么问题是 JQuery 运行客户端,这意味着您在服务器端的 PHP 数组在来自 Ajax 的每个请求之间消失。唯一剩下的数组是 $_SESSION。

如果要使用 AJAX,则需要直接从 $_SESSION 中删除。其他任何东西都是无用的,因为数组和变量在每次调用之间“消失”。

于 2012-05-04T13:38:16.003 回答