Javascript将文本添加到textarea然后将textarea保存为cookie

时间:2013-06-11 05:31:45

标签: php javascript jquery cookies

我的客户想要一个网站显示他的产品,但他不想要一个电子商务网站,因为他的产品数量非常低。

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

我在网页上找到的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而不是删除它。

1 个答案:

答案 0 :(得分:0)

我建议您使用插件轻松访问Cookie,例如this onethis one,然后就像

一样简单
function storeValue(key, value){
    $.cookie(key, value)
}

function getValue(key){
    return $.cookie(key);
}