Avatar billede Fiber Bjørn Juniormester
09. februar 2013 - 16:48 Der er 12 kommentarer og
1 løsning

Vise indkøbskurv på en pæn måde

Hej.

Jeg har denne indkøbskurv som jeg gerne vil have vist på en pæn måde, men jeg er ikke så meget inde i hvordan dette gøres.

Her er hvordan varene gemmes

    $vare = array(
        'scanner_nr' => $_SESSION["scanner_nr"],
        'bord_nr' => $bord_nr,
        'vare_gr' => $drink_gr,
        'vare_nr' => $drink,
        'antal' => 123.75,
        'pris' => 123.75,
    );
    array_push($_SESSION['cart']['items'], $vare);

 


Hvordan kan jeg udskrive det sådan her

Scanner nr: 1
Bord Nr: 5
Vare Gr: 1
Vare Nr: 7
Antal: 5
Stk Pris: 25,25


Næste vare

Næste vare

Næste vare
Avatar billede Fiber Bjørn Juniormester
09. februar 2013 - 16:52 #1
Jeg ved godt at det ikke er den mest pæne måde lige at udskrive indkøbskurven på lige nu. Men bare jeg lige kan se hvordan den kan udskrives :)


Lige nu ser det nemlig sådan ud

[4]=> array(6) { ["scanner_nr"]=> string(1) "1" ["bord_nr"]=> string(2) "10" ["vare_gr"]=> string(1) "2" ["vare_nr"]=> string(1) "1" ["antal"]=> float(123.75) ["pris"]=> float(123.75) }
Avatar billede Fiber Bjørn Juniormester
09. februar 2013 - 16:53 #2
med denne kommando:

    // Udskriv kurven
    var_dump($_SESSION['cart']);
Avatar billede olebole Juniormester
09. februar 2013 - 16:53 #3
<ole>

Princippet er at bruge en foreach løkke:

foreach ($_SESSION['cart']['items'] as $key => $val) {
    echo '<div>' . $key . ': ' . $val . '</div>';
}

/mvh
</bole>
Avatar billede olebole Juniormester
09. februar 2013 - 16:56 #4
Nej, #1 og #2 hænger ikke sammen med din kode i spørgsmålet. Hvis du gøre, som du påstår i spørgsmålet, kan dit array ikke se sådan ud  =)
Avatar billede olebole Juniormester
09. februar 2013 - 17:00 #5
Sorry, glem #3 og #4  =)

foreach ($_SESSION['cart'] as $item) {
    foreach ($item as $key => $val) {
        echo '<div>' . $key . ': ' . $val . '</div>';
    }
}
Avatar billede Fiber Bjørn Juniormester
09. februar 2013 - 17:32 #6
Ja jeg ved godt at det ikke hænget helt sammen det jeg skrev men det var bare for at give et eksempel.

hvis nu jeg vil udskrive pris

["pris"]=> float(123.75)

Lige nu udskriver den det her

0: Array
1: Array
2: Array
3: Array
4: Array
5: Array


som sådan er godt nok fordi der er 5 varer i indkøbskurven

Men hvordan får jeg den til at udskrive prisen i stedet for Array?
Avatar billede Fiber Bjørn Juniormester
09. februar 2013 - 17:33 #7
undskyld 6 varer i kurven
Avatar billede olebole Juniormester
09. februar 2013 - 17:41 #8
Hvis du gør, som du viser i spørgsmålet, udskriver koden i #5 ikke 'array', men prisen  =)
Avatar billede Fiber Bjørn Juniormester
09. februar 2013 - 21:03 #9
Jeg er startet helt fra start nu. Hvor jeg har indsat dette

if (!isset($_SESSION['vare_kurv'])) { // Kurv ikke oprettet

    // Opret kurv
    $_SESSION['vare_kurv'] = array(
        'items' => array()
    );
 
    // Indsæt en vare
    $vare = array(
        'varenummer' => 1234567,
        'antal' => 1,
        'pris' => 123.75
    );
    array_push($_SESSION['vare_kurv']['items'], $vare);
 
    // Indsæt en vare mere
    $vare = array(
        'varenummer' => 2345678,
        'antal' => 4,
        'pris' => 22.30
    );
    array_push($_SESSION['vare_kurv']['items'], $vare);
 
} else { // Kurven er oprettet
    // Udskriv kurven
    var_dump($_SESSION['vare_kurv']);
}
?>
<? echo '<a href="bord.php?action=v_t_reg">Se kurv</a>'; ?>

----- Her gemmes værdierne godt nok
Hvis jeg så udskriver med denne kode



<?php


foreach ($_SESSION['vare_kurv'] as $item) {
    foreach ($item as $key => $val) {
        echo '<div>' . $key . ': ' . $val . '</div>';
    }
}
?>

Kommer der til at stå så ledes

0: Array
1: Array

????? det kan jeg ikke forstå hvis du siger at ved denne udskrift skulle der kommer til at stå en pris ......

Hvad faen gør jeg galt???????
Avatar billede olebole Juniormester
09. februar 2013 - 21:27 #10
Det er mig, der vrøvler. Prøv dette i stedet:

foreach ($_SESSION['vare_kurv']['items'] as $item) {
    foreach ($item as $key => $val) {
        echo '<div>' . $key . ': ' . $val . '</div>';
    }
}
Avatar billede olebole Juniormester
09. februar 2013 - 21:35 #11
- eller:

$html = array();
$inx = 1;
foreach ($_SESSION['vare_kurv']['items'] as $item) {
    $html[] = '<div style="padding:10px;margin:5px 0;border:1px solid #ccc"><b>Vare nummer ' . ($inx++) . ':</b><br>';
    foreach ($item as $key => $val) {
        $html[] = '<div>' . $key . ': ' . $val . '</div>';
    }
    $html[] = '</div>';
}

echo implode('', $html);
Avatar billede Fiber Bjørn Juniormester
10. februar 2013 - 19:31 #12
Så virker det :)

Men det kan da godt være at jeg er gået helt forkert til denne opgave.......

De info der nu er gemt kan de efterfølgende gemmes i en database?
Avatar billede Fiber Bjørn Juniormester
13. februar 2013 - 17:40 #13
Lukker og tak for svaret i #11
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester