/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Slette værdier fra sessions
Fra : Poul Kubel


Dato : 10-05-04 10:55

Hej

Jeg vil gerne tilføje en sletknap i en webshop, så folk kan fjerne en enkelt
vare fra deres bestilling. Jeg har bøvlet med forskellige måder at opnå
dette på, men intet er lykkedes endnu. Det nærmeste jeg er kommet på en
løsning er følgende:

<?php
session_start();
if (isset($_POST['bestilling'])) {
$_SESSION['bestilling'][] = $_POST['bestilling'];
}
if (isset($_POST['slet'])) {
unset ($_SESSION['bestilling']);
}
?>

men den sletter jo logisk nok hele sessionen, og ikke en enkelt værdi fra
den. Hvordan får jeg skabt en forbindelse mellem værdien af 'slet' og
værdierne i $_SESSION['bestilling'], så jeg kan få fjernet de værdier jeg
ønsker?

Mvh.

Poul Kubel



 
 
Kasper Garnæs (10-05-2004)
Kommentar
Fra : Kasper Garnæs


Dato : 10-05-04 14:07

Poul Kubel <kubel@odense.kollegienet.dk> wrote:
> Hvordan får jeg skabt en forbindelse mellem værdien af
> 'slet' og værdierne i $_SESSION['bestilling'], så jeg kan få fjernet
> de værdier jeg ønsker?

if (isset($_POST['slet'])) {
unset ($_SESSION['bestilling'][$_POST['slet']]);
}

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Poul Kubel (10-05-2004)
Kommentar
Fra : Poul Kubel


Dato : 10-05-04 21:56


"Kasper Garnæs" skrev :

> > Hvordan får jeg skabt en forbindelse mellem værdien af
> > 'slet' og værdierne i $_SESSION['bestilling'], så jeg kan få fjernet
> > de værdier jeg ønsker?
>
> if (isset($_POST['slet'])) {
> unset ($_SESSION['bestilling'][$_POST['slet']]);
> }
>

Jeg har prøvet det uden det store held. Så vidt jeg kan udlede af manualen,
kan man kun slette nøgle og tilhørende værdi ved at henvise til nøglen i sin
unset(). Bruger jeg eksempelvis nøglen 0 i det følgende:

unset ($_SESSION['bestilling'][0]);

så kan jeg også godt få slettet den første bestilling i arrayet
$_SESSION['bestilling'][]. Men sådan som mit session-halløj ser ud nu med
dit forslag:

<?php
session_start();
if (isset($_POST['bestilling'])) {
$_SESSION['bestilling'][] = $_POST['bestilling'];
}
if (isset($_POST['slet'])) {
unset ($_SESSION['bestilling'][$_POST['slet']]);}
?>

Så er det jo de pågældende værdier til nøglerne jeg henviser til med unset()
og ikke selve nøglerne. Disse værdier udgøres af varenumre, og jeg prøvede
at erstatte 0 i det ovenstående(unset ($_SESSION['bestilling'][0]);) med et
af disse varenumre som jeg bestilte og efterfølgende prøvede at slette, igen
uden held.

Mvh.

Poul Kubel



Poul Kubel (11-05-2004)
Kommentar
Fra : Poul Kubel


Dato : 11-05-04 07:25


> Jeg vil gerne tilføje en sletknap i en webshop, så folk kan fjerne en
enkelt
> vare fra deres bestilling. Jeg har bøvlet med forskellige måder at opnå
> dette på, men intet er lykkedes endnu. Det nærmeste jeg er kommet på en
> løsning er følgende:
>
> <?php
> session_start();
> if (isset($_POST['bestilling'])) {
> $_SESSION['bestilling'][] = $_POST['bestilling'];
> }
> if (isset($_POST['slet'])) {
> unset ($_SESSION['bestilling']);
> }
> ?>
>
> men den sletter jo logisk nok hele sessionen, og ikke en enkelt værdi fra
> den. Hvordan får jeg skabt en forbindelse mellem værdien af 'slet' og
> værdierne i $_SESSION['bestilling'], så jeg kan få fjernet de værdier jeg
> ønsker?
>
Nå, nu lykkedes det mig med følgende:

if (isset($_POST['slet'])) {
$fjern = $_SESSION['bestilling'];
foreach ($fjern as $key => $value) {
if ($value == $_POST['slet']) {
unset ($_SESSION['bestilling'][$key]);
}
}
}

Mvh.

Poul Kubel



Kasper Garnæs (11-05-2004)
Kommentar
Fra : Kasper Garnæs


Dato : 11-05-04 13:17

Poul Kubel <kubel@odense.kollegienet.dk> wrote:
> Nå, nu lykkedes det mig med følgende:
>
> if (isset($_POST['slet'])) {
> $fjern = $_SESSION['bestilling'];
> foreach ($fjern as $key => $value) {
> if ($value == $_POST['slet']) {
> unset ($_SESSION['bestilling'][$key]);
> }
> }
> }

Jeg tror i længden, det kunne være nyttigt for dig at lade varerne være
nøglerne i arrayet og antallet af varerne værdierne. Det ville både gøre det
lettere for dig at fjerne varer fra arrayet og give dig mulighed for at
håndtere flere at en slags vare på en mere elegant måde.

<?php
session_start();
if (isset($_POST['bestilling'])) {
$_SESSION['bestilling'][$_POST['bestilling']] = $_POST['antal']; //eller
evt bare 1 indtil videre
}
if (isset($_POST['slet'])) {
unset($_SESSION['bestilling'][$_POST['slet']]);
}
?>

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Poul Kubel (13-05-2004)
Kommentar
Fra : Poul Kubel


Dato : 13-05-04 09:53


"Kasper Garnæs" skrev:

> Jeg tror i længden, det kunne være nyttigt for dig at lade varerne være
> nøglerne i arrayet og antallet af varerne værdierne. Det ville både gøre
det
> lettere for dig at fjerne varer fra arrayet og give dig mulighed for at
> håndtere flere at en slags vare på en mere elegant måde.
>
> <?php
> session_start();
> if (isset($_POST['bestilling'])) {
> $_SESSION['bestilling'][$_POST['bestilling']] = $_POST['antal'];
//eller
> evt bare 1 indtil videre
> }
> if (isset($_POST['slet'])) {
> unset($_SESSION['bestilling'][$_POST['slet']]);
> }
> ?>

Jeg er i den situation at 90% af varene er unikke, så man kun kan bestille
et eksemplar. Derfor har jeg indtil videre set bort fra den mulighed du
kommer med. Dog har jeg en enkelt varegruppe hvor man skal kunne bestille et
vist antal, så det kan være jeg i sidste ende må overveje din løsning.

Mvh.

Poul Kubel



Søg
Reklame
Statistik
Spørgsmål : 177553
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste