Проста количка за пазаруване, използваща JavaScript Cookie

Имам следния код за прилагане на проста количка за пазаруване с помощта на JavaScript. Има връзка за плащане, която извиква getcookie(), за да провери стойността на съхранените бисквитки. Когато няма нищо в бисквитката, щракнете върху предупрежденията за връзка, за да направите въвеждане. Ако нито една от стойностите не е въведена в полето за въвеждане и натиснете добавяне в кошницата, валидирането се извършва и се извежда съобщение за грешка.

По някаква причина бисквитката не приема стойността от полето за въвеждане. Опитах доста време сега, но не успях да отстраня грешки в кода. Най-накрая се показва само празно поле за предупреждение. Оценявам всяко отстраняване на грешки. Благодаря предварително.

<script type="text/javascript">
    var value;
    var productID;

    function setItem(abd) {
        value = abd.value;
        productID = abd.getAttribute("productID");
        var intRegex = /^\d+$/;
        var numberOfItems;
        if (!intRegex.test(value) || (value <= 0)) {
            alert('Please Enter valid numberofitem');
        } else {
            numberOfItems = value;
        }
    }
    function getCookie() {
        if (value == undefined) {
            alert("There is nothing in the shopping cart!");
        } else {
            var cookieArray = document.cookie.split(';');
            var printHolder = "";
            for (var i = 0; i < cookieArray.length; ++i) {
                var pairArray = cookieArray[i].split('=');
                alert(pairArray[0]);
            }
            alert(printHolder);
        }
    }
    function setCookie() {
        if (value == undefined) {
            alert("Please add number of items in text box");
        } else {
            document.cookie = productID + "=" + value + "; ";
            alert(value + " Product(s) with id " + productID +
                " has been added to shopping cart!");
        }
    }

</script>
<a href="javascript:getCookie()"> Checkout </a>
<input name="item-select" id="item-select"
       productid="p001"  style="width: 50px" onBlur="setItem(this)" >
<button type="button" onclick="setCookie()">Add to cart.</button>

Резултатът, който исках, най-накрая е нещо такова!

въведете описание на изображението тук


person Dinesh Devkota    schedule 16.03.2014    source източник


Отговори (2)


Този код работи перфектно с някои промени. Използвах chrome и по-късно разбрах това

Google Chrome не създава бисквитки, когато файлът е на local machine и се зарежда в браузъра директно чрез пътя на файла.

По-скоро опитайте с localhost. Определено работи, когато поставите кода в сървъра. Chrome се превърна в тъга тук!

Ако искате идея за създаване на пазарска количка с Javascript, следвайте тази връзка. http://www.smashingmagazine.com/2014/02/create-client-side-shopping-cart/

person Dinesh Devkota    schedule 18.03.2014

Вашата getCookie вероятно ще ви даде неправилни резултати.

var cookiearray= document.cookie.split(';');
var toprint="";
for(var i=0; i<cookiearray.length; ++i) 
{ 
    var pairArray= cookiearray[i].split('=');
    alert(pairArray[0]);
}
alert(toprint);

Две неща не са наред тук;

1) Когато сте във вашия for цикъл, всеки път, когато извършвате цикъл, вие предупреждавате първия елемент във вашия масив по всяко време pairArray[0], трябва да промените това на pairArray[i]

2) Вие се показвате с празен сигнал, защото това е, което сте присвоили на променливата toprint. - Присвоявате toprint празен низ преди вашия for цикъл, тогава вие предупреждавате тази променлива, без да й присвоявате нова стойност, така че ще бъдете показва се с празно поле за предупреждение! - Също така се уверете, че вашият масив с бисквитки не е празен.

Опитайте, насладете се на кодирането :)

Куш

person Kush    schedule 17.03.2014
comment
Явно вече го бях пробвал. За съжаление не се получи. - person Dinesh Devkota; 17.03.2014
comment
приятелче! Този abd приема (този) обект. Ти изобщо знаеш ли какво говориш? - person Dinesh Devkota; 17.03.2014