如何使用带数组和ajax的cookie?

问题描述 投票:0回答:1

我正在尝试为我的(电子商务)网站制作购物车系统,我无法弄清楚我做错了什么。我想在用户点击按钮时显示Cookie中的一些元素。对于按钮,我使用一些简单的HTML:

<button onclick="test()">CLICK ME</button>

我附加到该函数的javascript是这样的:

var httpRequest = new XMLHttpRequest();
    function test() {
         if (!httpRequest) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        httpRequest.onreadystatechange = alertContents;
        httpRequest.open('GET', 'test.php?q=<?php echo $row['denumire'];?>', true);
        httpRequest.send();
    }
    function alertContents() {
        if (httpRequest.readyState === XMLHttpRequest.DONE) {
            if (httpRequest.status === 200) {
                document.getElementById('test_adaugare_produs_cos').innerHTML = this.responseText;
            } else {
                alert('There was a problem with the request.');
            }
        }
    }

由于我处于测试阶段,我只想在页面中输出cookie的元素。如果我有这个工作,我的项目的其余部分很简单。 test.php文件包含以下代码:

$cookie = $_COOKIE['cos'];
$produse = array("$cookie");
$q = $_GET['q'];
array_push($produse, "$q");
$produse = json_encode($produse);
setcookie("cos",$produse,time()+2592000);
$cookie = json_decode($_COOKIE['cos'], true);
foreach ( $cookie as $cook) {
    echo $cook;
    echo "<br>";
}

代码有点工作。它输出数组的最后一个元素,但其余的元素(这些只是网站上的产品名称,因为按钮应该使用cookie将元素添加到购物车中)是字符串格式。这就是它的样子(点击不同的产品后):

    ["[\"[\\\"[\\\\\\\"[\\\\\\\\\\\\\\\"[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"ABRAZIV PRO 115*50\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/100\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/ ML\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"ABRAZIV PRO 115*50\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/100\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/ ML\\\\\\\\\\\\\\\"]\\\\\\\",\\\\\\\"ACTUATOR MTR TECH2230\\\\\\\"]\\\",\\\"ACTUATOR MTR TECH2230\\\"]\",\"ACTUATOR MTR TECH2230\"]","ACCESORII SINA PLASTIC DUBLA 3M"]
ACCESORII SINA PLASTIC DUBLA 2.5M

产品的名称如下(我包括他们,因为他们不是英文,我不想造成混淆):

  • 磨料为115 * 50/100 / ML
  • ACTUATOR MTR TECH2230
  • 配件3M
  • 双塑料DUBLA 2.5M配件

我已尝试用cookie中的数组做这种事情,只是将产品名称添加到数组中,但这证明很麻烦。会有更好的方法吗?我该如何解决这个问题?

谢谢你的回答!

javascript php ajax cookies
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.