2016-07-10 8 views
1

Ich versuche Variable in Cookie zu speichern und dann abzurufen, bis jetzt kann ich nur eine Text- und Seiten-URL speichern und dann abrufen, wo immer ich will.Variable in Cookie suchen und speichern

Könntest du mir bitte helfen, zum Beispiel möchte ich in diesem Code $ room und $ renthome Werte in cookie speichern.

das ist meine aktuellen Code

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title>New page string name</title> 
 
    <link rel="stylesheet" href="css/reset.css"> <!-- Resource style --> 
 
<link rel="stylesheet" type="text/css" href="css/buy-rent.css" /> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
 
    <script> 
 
    function createCookie(name, value, days) { 
 
    var expires = '', 
 
    date = new Date(); 
 
    if (days) { 
 
     date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
 
     expires = '; expires=' + date.toGMTString(); 
 
    } 
 
    document.cookie = name + '=' + value + expires + '; path=/'; 
 
    } 
 
    /* 
 
    * Read cookie by name. 
 
    * In your case the return value will be a json array with list of pages saved. 
 
    */ 
 
    function readCookie(name) { 
 
    var nameEQ = name + '=', 
 
    allCookies = document.cookie.split(';'), 
 
    i, 
 
    cookie; 
 
    for (i = 0; i < allCookies.length; i += 1) { 
 
     cookie = allCookies[i]; 
 
     while (cookie.charAt(0) === ' ') { 
 
     cookie = cookie.substring(1, cookie.length); 
 
     } 
 
     if (cookie.indexOf(nameEQ) === 0) { 
 
     return cookie.substring(nameEQ.length, cookie.length); 
 
     } 
 
    } 
 
    return null; 
 
    } 
 
    /* 
 
    * Erase cookie with name. 
 
    * You can also erase/delete the cookie with name. 
 
    */ 
 
    function eraseCookie(name) { 
 
    createCookie(name, '', -1); 
 
    } 
 

 
    var faves = new Array(); 
 

 
    function isAlready(){ 
 
    var is = false; 
 
    $.each(faves,function(index,value){ 
 
     if(this.url == window.location.href){ 
 
     console.log(index); 
 
      faves.splice(index,1); 
 
      is = true; 
 
     } 
 
    }); 
 
    return is; 
 
    } 
 

 
    $(function(){ 
 
    var url = window.location.href; // current page url 
 
    $(document.body).on('click','#addTofav',function(e){ 
 
     e.preventDefault(); 
 
     var pageTitle = $(document).find("title").text(); 
 
     if(isAlready()){ 
 
     } else { 
 
      var fav = {'title':pageTitle,'url':url}; 
 
      faves.push(fav); 
 
     } 
 
     var stringified = JSON.stringify(faves); 
 
     createCookie('favespages', stringified); 
 
     location.reload(); 
 
    }); 
 

 

 
    var myfaves = JSON.parse(readCookie('favespages')); 
 
    if(myfaves){ 
 
     faves = myfaves; 
 
    } else { 
 
     faves = new Array(); 
 
    } 
 

 
    }); 
 
    </script> 
 
</head> 
 
<body> 
 
    <a href="javascript:void(0);" id="addTofav">Add me to fav</a> 
 
    <div class="img"> 
 
    <div class="desc"> 
 
    <ul id="appendfavs"> 
 
    
 
    </ul> 
 
    </div> 
 
    </div> 
 
<?php 
 
error_reporting(0); 
 

 
include("config.php"); 
 

 
$quer= "SELECT*FROM ".$db_table." "; 
 

 

 
$query=mysqli_query($connect,$quer) 
 
or die(mysqli_error()); 
 
?> 
 

 
<?php while($row = mysqli_fetch_array($query)): 
 
$idhome= $row['idhome']; 
 
$room=$row['room']; 
 
$renthome=$row['renthome']; 
 
$pricehome=$row['pricehome']; 
 
?> 
 

 
<?php endwhile;?> 
 

 
</body> 
 
</html>

Antwort

0

Ich benutze jQuery Cookie-

https://github.com/carhartl/jquery-cookie

Nutzung: $.cookie('name', 'value');

retri Eving: $.cookie('name'); // => "value"

Um komplexe Daten in einem Cookie gespeichert werden, gehen Sie wie folgt vor:

1) in einem Objekt die gesamten Daten speichern. So etwas wie var cookieData = {};, und dann können Sie properites wie cookieData.date = yourDate; cookieData.myUrl=yourUrl;

2) übertragen, das Objekt zu einem Stachel fügen Sie die Zeichenfolge in dem Cookie mit JSON.stringify

3) speichern.

Jetzt ist es, um wieder zu verwenden -

1) abrufen das Cookie (den Code siehe oben)

2) Drehen Sie die Zeichenfolge zurück in ein Objekt mit JSON.parse

3) Fetch die gewünschten Daten aus dem Objekt

+0

danke für deine antwort, aber denk du hast meine frage nicht bekommen. Ich habe kein Problem, einen Cookie-Namen oder Wert zu definieren. Um meinen Code zu vereinfachen, habe ich diesen Teil gelöscht. Wenn Sie bemerken, dass ich eine ganze andere Variable im Cookie speichern und abrufen möchte.wie Seitentitel, den ich gemacht habe. Ich bearbeite meinen Code bitte wecken Sie einen Blick auf es wieder danke – Malekian

+0

Ich habe eine Frage, wie kann ich mehrere Variablen in einem Objekt speichern, ist es so: var cookieData = {$ idhome, $ room, $ renthome}; – Malekian

+0

Welche Parameter möchten Sie speichern? – Roysh

0

In jQuery sollten Sie jquery.cookie Plugin verwenden.

Dadurch entsteht ein Cookie

$.cookie(name, value [, options]); 

und dann

$.cookie(name); 
+0

Vielen Dank für Ihre Antwort, aber denken Sie, dass Sie nicht meine Frage. Ich habe kein Problem, einen Cookie-Namen oder Wert zu definieren. Um meinen Code zu vereinfachen, habe ich diesen Teil gelöscht. Wenn Sie bemerken, dass ich eine ganze andere Variable im Cookie speichern und abrufen möchte. wie Seitentitel, den ich gemacht habe. Ich bearbeite meinen Code bitte wecke einen Blick darauf Danke nochmal – Malekian

0

Sie können in PHP <script> Block generieren Wert abrufen, der die variable sparen. Beispiel zeigt das Speichern des Cookies mit dem Namen von $room Wert.

<script> 
    createCookie("room", "<?= $row['room'] ?>", 2); 
</script> 

ein anderer (und ich denke besser) Weg ist, den Cookie durch PHP zu setzen.

<?php setcookie("room", $row['room'], 2 * 24 * 60 * 60 * 1000); ?> 

Vergessen Sie nicht, dass, wenn Sie Cookies von PHP festlegen möchten yhou es eine Ausgabe vor zu tun haben, senden. In Ihrem Fall müssen Sie die Ausgabe vorbereiten, Cookie setzen und dann die Ausgabe senden.

+0

Hallo danke für deine Antwort ich bekomme den Wert von Variablen aus der Datenbank also kann ich deine obige Frage so ändern – Malekian

+0

' ' – Malekian

+0

Es ist nicht richtig, erster Parameter ist Cookie-Name, Sekunde ist Wert. Als Antwort wird es aktualisiert. – Misaz

Verwandte Themen