Nedenfor er vist koderne til en indkøbskurv (ikke css).
Omdrejningspunktet er $_SESSION-arrayen [kurven].
Data indtastes til feltet , der har karakteristikaene: <input class="bredde" type='textbox' name='planter_antal[$plan_id]' />. Det indebærer, at feltet nu ikke blot indeholder er variabel (antal), men er udvidet til at være et associativt array der også indeholder variablen [$plan_id] der er til rådighed fra et forudgående udtræk fra databasen.
Slet SESSION
Slet alle data i $_SESSION
session_destroy(); //slettet session
Slet alle elementer i SESSION
Tøm specifikt array
$_SESSION['kurv'] = array(); // tøm array
Slet element i $_SESSION
Sletter element med dent pågældende variabel-værdi.
unset ($_SESSION['kurv'][$vare_id]);
Indkøbskurv
Indkøbskurven indeholder oplysninger om, hvilke varer brugeren har markeret at ville købe. Oplysningerne hentes dels fra $_SESSION (varenumre og antal) og dels fra databasen.
Foreach bruges til udtræk af data fra $_SESSION og tilknytning af data fra databasen. De enkelte elementer i arrayen deles op i navnet $plan_id og værdien $plan_antal, der så kan anvendes hver for sig.
Bruger URL-parameter som grundlag for at trække data fra databasen til opbygning af liste, som brugerne kan angive købsvalg i (i feltet 'planter_antal[$plan_id]'). Afventer at brugeren trykker på "Opdater kurv". Opdaterer derpå $_SESSION.
'planter_antal[$plan_id]': I listen udtrækkes data for de felter, der er foretaget indtastning til. Disse data overføres til $_POST.
$_SESSION opdateres. Der bruges den samme kode hvadenten, der er data fra et eller flere inddatafelter.
<?php
if (isset ($_GET['planty_id'])) // start GET
{
$planty_id = $_GET['planty_id'];
?>
<form method='post'>
<?php
$antal = 0;
$sql = "SELECT * FROM plantestam where fk_planty_id =$planty_id";
$result = mysqli_query ($db_link, $sql) or die (mysqli_error($db_link));
if (isset ($_POST['submit_kurv']))
{
$planter_antal = $_POST['planter_antal'];
foreach ($planter_antal as $vare_id => $antal) // Opdeler arrayen i navnet $vare_id og værdien $antal
{
$antal = trim ($antal);
if (is_numeric ($antal) && $antal >= 0)
{
$antal = (int) $antal; // antal juggles til heltal
if ($antal == 0)
{
unset ($_SESSION['kurv'][$vare_id]); // sletter varen i $_SESSION
}
else
{
$_SESSION['kurv'][$vare_id] = $antal; // indsætter nyt eller overskriver i $_SESSION
} // slut antal
} // slut is_numeric
} // slut foreach
<?php
}
else // GET
{
echo "<p>Der problemer med URL-parameter i adresselinien</p>";
} // slut GET
?>
Varevalg - enkelt vare
Bruger URL-parameter som grundlag for at trække data fra databasen til opbygning af liste, som brugerne kan angive købsvalg i (i feltet 'planter_antal[$plan_id]').
Afventer at brugeren trykker på "Opdater kurv".
Opdaterer derpå $_SESSION.
'planter_antal[$plan_id]': I listen udtrækker data fra feltet, hvis der er foretaget indtastning. Dataene overføres til $_POST.
$_SESSION opdateres. Der bruges den samme kode hvadenten, der er data fra et eller flere inddatafelter.