2016-07-19 10 views
0

** UPDATE ** Der Code funktioniert jetzt. Aber jetzt hätte ich gerne eine div Anzeige der gespeicherten Sessions. Dieses div befindet sich auf derselben Seite wie die Elemente und heißt items. Ich habe versucht, ein Refresh-Skript zu verwenden. Aber das funktioniert nicht.Speichern Sie mehrere Werte in Sitzung PHP

Ist diese posible über jQuery oder sollte ich AJAX verwenden (ich bin nicht wirklich "in" Ajax noch) ...

Owke, mal sehen, ob ich das so gut ich kann erklären kann ... I Ich benutze Wordpress für eine Website, die ich jetzt mache. Ich möchte die "geliked" Elemente speichern, die ein benutzerdefiniertes Klicken verwendet.

Also, was ich tat, war offen eine Sitzung in meinem Kopf

<?php 
    session_start(); 
?> 

dann auf der Seite, die „wie“ Ich habe den folgenden Code speichern muss:

<?php 
    // Set session variables 
    $_SESSION["item"] = get_the_title(); 
?> 

Und wo ich es möchte ich diesen Code echo gestellt:

<?php 
    if(isset($_SESSION['item'])){ 
    echo $_SESSION['item']; 
    }; 
?> 

das alles funktioniert wie es sollte, ABER Es gibt mehrere Elemente, die eine benutzerdefinierte Seite auf einer Seite haben könnte. UND ich möchte sie alle in meiner Sitzung speichern. Aber es speichert nur 1 Sitzung auf einmal.

Muss ich mit Nummern von Präfixen wie item-x und item-y arbeiten?

fand ich dieses Stück Code: link

Aber weil ich bin mit Wordpress und ich möchte nur den Titel I cant $ Äpfel, Orangen $ und $ Birnen mit Ihrem Produkt-IDs ersetzen. Denn für mich ist es nur

<?php the_title(); ?>

Also das ist für mich nicht funktionieren:

<?php 
    // Set session variables 
    $_SESSION["boot"] = array(); 
    $_SESSION["boot"][] = the_title(); 
?> 

Jedes Mal, ... wie man dies funktioniert?

Antwort

1

Sie überschreiben Ihre Sitzung item jedes Mal. Sie müssen dies zu einem Array machen.

$_SESSION["item"][] = get_the_title(); 

Jetzt echo sie, wollen Sie loswerden Duplikate erhalten, so verwenden array_unique()

if(isset($_SESSION['item'])){ 
    echo implode("<br />", array_unique($_SESSION['item'])); 
} 

POC:https://repl.it/Cd7l

+0

Danke für den Code! Es wirkt wie ein Zauber! Das einzige Ding ist ... Es zeigt alle Einzelteile und nicht die, die ich als "wie" markierte. – Steggie

+0

Muss ich die Sitzung zuerst zerstören? Mit ' ' – Steggie

1

Um etwas zu erarbeiten, was gerade gesagt: $_SESSION[] ist ein Array, das wie jedes andere PHP-Array beliebige Werte unter einem oder mehreren "Schlüsseln" speichert, zB "item".

Wie jede andere PHP-Array kann jeder Wert ein einzelner Skalar sein, wie ein Buch-Titel String oder eine einzelne Nummer,oder es kann selbst ein Array sein. (Dies ist im Konzept ähnlich zu "einem zweidimensionalen Array.") Jeder der diese Array-Schlüssel könnte wiederum zu jeder anderen Art von Informationen führen, die Sie speichern möchten: PHP-Datenstrukturen können beliebig tief sein, und PHP speichert alles in Ihrer" Sitzung ".

Nun, wenn es wäre ich, würde ich wahrscheinlich Dubletten beseitigen, wenn ich die Werte speicherte, so dass ich sicher sein konnte, dass die gespeicherten Sitzungsinformationen überhaupt keine Duplikate enthielten etwas besonderes, wenn ich echo ed ihnen etwas wie folgt aus:.

$_SESSION["item"] = array_unique($_SESSION["item"]); 

... genau, wie ich es mit jedem anderen PHP-Array machen könnte.

+0

Danke für die Ausarbeitung! – Steggie

Verwandte Themen