0

我的客户想要一个在线展示他的产品的网站,但他不想要一个电子商务网站,因为他拥有的产品数量非常少。

我想在每个产品上制作一个按钮,当用户单击时,它会将其存储在 cookie 中。我想出的是我在页面内创建了一个隐藏的文本区域,当用户单击每个产品上的订购按钮时,它将被添加到文本区域并同时保存到 cookie 中。然后当用户进入订单页面时,订单将被加载到一个文本区域中。

我在在线页面上找到的 javascript 部分。以下是我的代码;

<div id="hide" style="display: none;">
        <textarea id="myContent2" name="myContent2"></textarea>
        <a onClick="addContent('myDiv2', document.getElementById('myContent2').value); setCookie('content', document.getElementById('myContent2').value, 7);">
        <br><br>
        <div id="myDiv2" style="font-weight: bold;"></div>

</div>

<script type="text/javascript">
    function addContent(divName, content) {
        document.getElementById(divName).innerHTML = content;
       }
</script>

<script type="text/javascript">
            function setCookie(c_name,value,expiredays) {
        var exdate=new Date();
        exdate.setDate(exdate.getDate()+expiredays);
        document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
    }
    function getCookie(c_name) {
        if (document.cookie.length>0) {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1) { 
            c_start=c_start + c_name.length+1; 
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            var cookieContent = "Welcome back " + unescape(document.cookie.substring(c_start,c_end));
            document.getElementById('myDiv2').innerHTML = cookieContent;
        } 
        }
    }
    getCookie('content');
</script>

这是用户在产品页面点击订单按钮的地方

<a onClick="addContent('myDiv2', document.myContent2.append("Product No 1") );  setCookie('content', document.getElementById('myContent2').value, 7);"> 

问题是,当用户单击按钮时,它不会向 textarea 发送任何内容,同时不会更新 cookie。我该如何解决这个问题以及如何确保每次用户单击订单按钮时​​,它都会将新数据添加到 textarea 中而不是擦除它。

4

1 回答 1

0

我建议你使用一个插件来轻松访问 cookie,比如这个这个,那么它就像

function storeValue(key, value){
    $.cookie(key, value)
}

function getValue(key){
    return $.cookie(key);
}
于 2013-06-11T05:34:59.363 回答