addeMedlem sedan jan. 2000120 inlägg Är inte speciellt duktig på PHP och har stött på ett problem som jag hoppas någon kan hjälpa mig med.
Jag läser upp lite värden i en sessionsvariablel varje gång man trycker på en knapp, saken är den att man kan klicka på samma knapp flera gånger men jag vill endast att sessionsvariablen ska utöka sig själv med unika "knappar" alltså inga dubletter i sessionsvarablen. testade att använda array_key_exist, men det verkra inte som om det fungerar med sessions variabler... hur löser jag detta enklast?
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in...
Har testat följande kod:
if (array_key_exists($\_POST\['hiddenName'\], $\_SESSION\['hiddenName'\])) {
echo "värdet finns redan i arrayen";
} else{
$\_SESSION\['hiddenName'\] = $\_SESSION\['hiddenName'\].",".$\_POST\['hiddenName'\];
echo "Har lagt till värdet i sessions variablen: ";
}
MatteMedlem sedan aug. 20002 975 inlägg $_POST['hiddenName'] måste vara en array om du ska köra array_key_exists() på den.
Gör något på det här hållet
if (!isset($_SESSION['hiddenName'])) {
$_SESSION['hiddenName'] = array();
}
if (in_array($_POST['hiddenName'], $_SESSION['hiddenName'])) {
echo "värdet finns redan i arrayen";
} else{
$_SESSION['hiddenName'][] = $_POST['hiddenName'];
echo "Har lagt till värdet i sessions variablen: ";
}
Vill du sedan skriva ut dina "hiddenName" kommaseparerade kan du göra något på det här hållet:
echo implode(", ", $_SESSION['hiddenName']);
addeMedlem sedan jan. 2000120 inlägg Strålande
Tack så mycket det fungerar perfekt!
jag vill nu skriva ut värdena (namnen som finns i $_SESSION['hiddenName']) i en selectbox.
antar att jag lämpligen använder en foreach sats, men hur gör jag det smidigast?
MatteMedlem sedan aug. 20002 975 inlägg Testa med
<select name="namn">
<?php
foreach ($_SESSION['hiddenName'] as $hidden) {
echo "<option>$hidden</option>\n";
}
?>
</select>
addeMedlem sedan jan. 2000120 inlägg Tack!
Tack så mycket, nu förstår jag till och med hur det fungerar ;)