1

Тема: Створення Cookie та його отримання

Потрібно при введені числа в input поле зберегти його в cookie, а потім при перезавантажені сторінки отримувати це число назад з cookie в input полі. Але не знаю як це правильно зробити, поки не виходить. Можете підказати?

<body>
  <input type="number" id="myInput" value="" onchange="myCookie()"/>
<script>
  function myCookie() {
    var numb = document.getElementById("myInput").value;
    document.cookie = "myNumber" + "=" + numb + "; "
 }
</script>
</body>

2 Востаннє редагувалося FakiNyan (29.05.2016 18:38:39)

Re: Створення Cookie та його отримання

вам точно тре кукі? там ще є, наскільки пам'ятаю, local storage

Куки  і локал сторедж призначені для різних цілей. Куки, в основному, для читання на серверній стороні, а локал сторедж можуть бути прочитані лише на клієнтській стороні. Так що питання наступне: в вашому випадку кому потрібні дані - клієнту, чи серверу?
схоже, що клієнту, от і використовуйте локал сторедж

Подякували: Yola, Wsewlad2

3

Re: Створення Cookie та його отримання

Локал сторейдж теж можуть бути прочитані на сервері, надіславши їх еджексом.

4

Re: Створення Cookie та його отримання

Мені потрібно, щоб користувач не мусив ще раз заповнювати поле після перезавантаження сторінки, якщо він вже раз заповнив його.

Подякували: 221VOLT1

5

Re: Створення Cookie та його отримання

а ще мона переписати їх на листочок, а потім записати в файлик на сервері

6

Re: Створення Cookie та його отримання

Wsewlad написав:

Мені потрібно, щоб користувач не мусив ще раз заповнювати поле після перезавантаження сторінки, якщо він вже раз заповнив його.

локал сторедж

localStorage.setItem('favoriteflavor','vanilla');
var taste = localStorage.getItem('favoriteflavor');
Подякували: Wsewlad, 221VOLT, leofun013

7

Re: Створення Cookie та його отримання

Щоб прочитати кукі потрібно щось на кшталт цього

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>

...

$(window).load(function() {
  $( "#myInput" ).value = document.cookie;
});

Але ще проблема може бути в тому. що кукі не працюють якщо сторінка завантажується не з сервера:
file:///C:/demo.html - не працює.
http://localhost/demo.html працює.

Подякували: Betterthanyou, leofun012

8

Re: Створення Cookie та його отримання

Тут і встановлення їх і відправка на сервер, якщо треба
http://replace.org.ua/topic/3690/

Подякували: Wsewlad, Djalin, 221VOLT3

9 Востаннє редагувалося 221VOLT (29.05.2016 21:09:51)

Re: Створення Cookie та його отримання

куки

function setCookie(name,value,options){options=options||{};var expires=options.expires;if(typeof expires=="number"&&expires){var d=new Date();d.setTime(d.getTime()+expires*1000);expires=options.expires=d;}
if(expires&&expires.toUTCString){options.expires=expires.toUTCString();}
value=encodeURIComponent(value);var updatedCookie=name+"="+value;for(var propName in options){updatedCookie+="; "+propName;var propValue=options[propName];if(propValue!==true){updatedCookie+="="+propValue;}}
document.cookie=updatedCookie;}

function getCookie(name){
var matches = document.cookie.match(new RegExp("(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"));return matches ? decodeURIComponent(matches[1]) : undefined;}

function deleteCookie(name,p){if(p==true){setCookie(name,'',{expires:-1,path:'/'});}else{setCookie(name,'',{expires:-1});}}

setCookie("cookname", "somecookvalue", {expires: 31104000,path: '/'});
var zz = getCookie("cookname2");
deleteCookie('cook6',true);
deleteCookie('cook7');

ajax

function getXmlHttp(){var xmlhttp;try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}catch(E){xmlhttp = false;}}if(!xmlhttp && typeof XMLHttpRequest!='undefined'){xmlhttp = new XMLHttpRequest();}return xmlhttp;}

function showtest1(){
var xmlhttp = getXmlHttp();
    xmlhttp.open('GET', '/target/url/', true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send(null);
    xmlhttp.onreadystatechange = function(){
    if(xmlhttp.readyState == 4){
            if(xmlhttp.status == 200){
            if(xmlhttp.responseText!=''){
            var r=xmlhttp.responseText;
            r=JSON.parse(r);
            /*work with it*/
            }
        }
    }
    };
}

function showtest2(){
var xmlhttp = getXmlHttp();
    xmlhttp.open('POST', '/ajax/downline/', true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    var sendinfo="id="+777;
    xmlhttp.send(sendinfo);
    xmlhttp.onreadystatechange = function(){
    if(xmlhttp.readyState == 4){
            if(xmlhttp.status == 200){
            if(xmlhttp.responseText!=''){
            var r=xmlhttp.responseText;
            r=JSON.parse(r);
            /*work with it*/
            }
        }
    }
    };
}

тут true про куки
тут true про ajax

Прихований текст

you really not need that shit jquery!! http://youmightnotneedjquery.com/

Подякували: leofun011

10 Востаннє редагувалося Wsewlad (01.06.2016 15:03:12)

Re: Створення Cookie та його отримання

Функція створює масив з потрібними даними, але потім коли передає цей масив в кукі, то передається лиш перша пара (height1=value). Чому так?

var height1= document.getElementById("height1").value;
var height2 = document.getElementById("height2").value;
var width1 = document.getElementById("width1").value;
var width2 = document.getElementById("width2").value;

setCookies([ "height1", "height2", "width1", "width2" ]);

function setCookies(cnames) {
    var cstr = "";
    for (var i=0; i<cnames.length; i++) {
        if (document.getElementById(cnames[i]).value != "") {
            if (cstr != "") cstr += "; ";
            cstr += cnames[i] + "=" + document.getElementById(cnames[i]).value;
        }
    }
    document.cookie = cstr;
}

11

Re: Створення Cookie та його отримання

Імовірно ';' використовується для відокремлення значення кук/реп'яшків від дата до якої вони дійсні. Можна спробувати використати інший символ. Важливо перевірити, щоб цей символ не зустрічався у значеннях цих полів.

Подякували: Wsewlad, 221VOLT, leofun013