webForumDet fria alternativet

Kolla efter dubletter

PHPur PHP

4 svar · 316 visningar · startad av adde

Medlem sedan jan. 2000120 inlägg
Frågan#1

Ä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: ";
		}
Medlem sedan aug. 20002 975 inlägg
#2

$_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']);
Medlem sedan jan. 2000120 inlägg
#3

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?

Medlem sedan aug. 20002 975 inlägg
#4

Testa med

<select name="namn">
<?php
foreach ($_SESSION['hiddenName'] as $hidden) {
   echo "<option>$hidden</option>\n";
}
?>
</select>
Medlem sedan jan. 2000120 inlägg
#5

Tack!

Tack så mycket, nu förstår jag till och med hur det fungerar ;)

141 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)