Een webwinkel.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 12:41:06
Quote Anchor link
Hoi allemaal!

Ik ben nieuw hier. Maar ook nieuw met PHP. Ik moet het voor mijn opleiding leren, maar ik vind het echt zo moeilijk. Aangezien ik morgen een assessment heb en ik er niet uitkom, vraag ik jullie om hulp.

Ik moet een webwinkel maken en voor morgen moet ik de webwinkel + winkelwagen (werkend dus ;)) laten zien. De webwinkel zelf heb ik, maar de winkelwagen, daarin loop ik vast.

Ik weet dat er een tutorial staat op phphulp.nl, maar ik wil het graag volgens het boek doen en nu kan ik het waarschijnlijk allemaal nog wel halen met kopieren en zo, maar in de loop der tijd kan ik dat niet meer. Daarom wil ik het nu graag snappen.

Ik weet dat ik d.m.v. een session de bestelde artikelen in mijn winkelwagen moet krijgen, maar ik weet niet echt goed hoe. Ik weet dat deze code fout is, maar kan iemand me uitleggen hoe of wat?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    session_start();
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

$artikelnummer
= $_POST["artikelnummer"];
$aantal = $_POST["hoeveelheid"];

echo '<h1>Inhoud winkelwagen</h1>

<table border="1">
    <tr>
        <td><strong>Wijn</strong></td>
        <td><strong>Aantal</strong></td>
        <td><strong>Prijs eenheid</strong></td>
        <td><strong>Totaal</strong></td>
    </tr>
        <td>'
. $_SESSION["winkelwagen"][$artikelnummer] = $aantal . '</td>
</table>'
;

echo '<a href="wijnwinkel.php">Verder winkelen</a> <a href="afrekenen.php">Afrekenen</a>';
?>
 
PHP hulp

PHP hulp

11/01/2025 13:51:23
 
Noppes Homeland

Noppes Homeland

26/09/2010 13:15:32
Quote Anchor link
Voorbeeldje, geintrepeteerd op wat je aan code gepost hebt, je moet nog wel zelf zaken (html) toevoegen. En tevens gaan we er maar van uit dat er niet geknoeid wordt met de $_POST variabelen, dus onbekende artikelnummers ed worden niet afgevangen.

Mijn voorkeur zal uitgaan naar een winkelmandje in de database, dat maakt het doen van controles veel eenvoudiger.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
session_start();

// als de winkelwagen nog niet bestaat
if (!isset($_SESSION['winkelwagen']) {
    $_SESSION['winkelwagen'] = array();
}


if (   $_SERVER['REQUEST_METHOD'] == 'POST'
    && isset($_POST['artikelnummer']) && trim($_POST['artikelnummer']) != ''
    && isset($_POST['hoeveelheid']) && ctype_digit($_POST['hoeveelheid']) && (int) $_POST['hoeveelheid'] >= 0) {
    
    if (isset($_SESSION['winkelwagen'][$_POST['artikelnummer']] && (int) $_POST['hoeveelheid'] > 0) {
       // wijzigen
       $_SESSION['winkelwagen'][$_POST['artikelnummer']] = (int) $_POST['hoevelheid'];
    }

    elseif (!isset($_SESSION['winkelwagen'][$_POST['artikelnummer']] && (int) $_POST['hoeveelheid'] > 0) {
       // toevoegen
       $_SESSION['winkelwagen'][$_POST['artikelnummer']] = (int) $_POST['hoeveelheid'];
    elseif (!isset($_SESSION['winkelwagen'][$_POST['artikelnummer']] && (int) $_POST['hoeveelheid'] == 0) {
       // verwijderen
       unset($_SESSION['winkelwagen'][$_POST['artikelnummer']]);
    }

    else {
       // onbekend foutafhandeling
    }
}

else {
   // foutafhadeling toevoegen / wijzigen / verwijderen niet mogelijk
}

// tonen inhoud winkel wagen
if (isset($_SESSION['winkelwagen']) && is_array($_SESSION['winkelwagen']) && count($_SESSION['winkelwagen'])>0) {

   foreach($_SESSION['winkelwagen'] as $artikelnummer => $hoeveelheid) {
      echo '<tr><td>'.$artikelnummer.'</td><td>'.$hoeveelheid.'</td></tr>';
   }
}

else {
  echo 'Uw winkel wagen is leeg';
}
        
?>
    
Gewijzigd op 26/09/2010 13:24:50 door Noppes Homeland
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 13:31:55
Quote Anchor link
Hoi,

Heel erg bedankt, maar in het werkboek staat juist dat het nog niet de bedoeling is dat je het in de database zet zeg maar, omdat mensen die iets hebben geplaatst in het winkelmandje, het ook nog moet kunnen verwijderen.
 
Noppes Homeland

Noppes Homeland

26/09/2010 13:34:33
Quote Anchor link
werkboek heeft zwakke argumenten, maar ik begrijp wel waarom deze opdracht is. Leuk om te leren hoe sessions werken
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 13:39:50
Quote Anchor link
Ja, maar ik zou het wel graag op de manier doen van het werkboek. Ook omdat dit best ingewikkeld is.

En dan zou het dus met de functies:
$_SERVER[PHP_SELF];
$_SESSION
session_start()
Moeten kunnen.
 
Noppes Homeland

Noppes Homeland

26/09/2010 13:48:04
Quote Anchor link
Ik heb code gepost die gebaseerd is op $_SESSION....

$_SESSION en $_SERVER zijn superglobals dus geen functies, zoook dat $_POST en $_GET dat zijn.

session_start() is wel een functie
Gewijzigd op 26/09/2010 13:48:18 door Noppes Homeland
 
Pim -

Pim -

26/09/2010 14:53:10
Quote Anchor link
Gast, leer plannen...
 
- SanThe -

- SanThe -

26/09/2010 14:58:34
Quote Anchor link
Pim de Haan op 26/09/2010 14:53:10:
Gast, leer plannen...


mmmm Volgens mij heet ze Eveline
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 19:40:25
Quote Anchor link
Plannen?

Denk je serieus dat ik hier vanochtend mee ben begonnen?! Ik ben hier elke dag minstens 2,5 uur mee bezig geweest.

Maar fijn dat hier op beginners zo wordt gereageerd.
Gewijzigd op 26/09/2010 19:40:38 door Eveline Tralalalaaaa
 
Victor Php

Victor Php

26/09/2010 20:32:18
Quote Anchor link
Hij bedoelt denk ik dat als de winkelwagen niet werkt en je moet het voor morgen af hebben en je begint vandaag pas te vragen... Je het niet haalt ;-)

Maarjaa :)
Ik weet niet of je er al uit bent, maar wat zegt het boek dat je moet doen?
Daar kun je dan vragen over stellen, want ik heb niet hetzelfde boek als jij voor me liggen.
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 20:44:14
Quote Anchor link
Het is ook laat, maar ik heb eerst zelf aangeprobeerd en via klasgenoten e.d. en zo geprobeerd...

En het probleem heb ik gewoon dat ik de codes vaak wel snap, maar zelf erop komen dat lukt me niet echt.

En ik heb hierboven al gezegd wat het boek zegt wat ik moet doen. Ik moet dus die winkelwagen maken... Niet in de database zetten, maar door middel van die 3 "dingen" dan, volgens mijn boek functies: $_SERVER[PHP_SELF], $_SESSION en session_start... Zoals ik al zei moet ik een tabelletje krijgen... met welke wijn er besteld is, hoeveel ervan en wat het toaalbedrag wordt. Wel krijg ik de 3 (dmv post) die je bij bestellen invult in de winkelwagen, maar helaas onthoudt hij niks en van wat er staat en krijg ik dus ook niet die gegevens die hij moet tonen...
 
Noppes Homeland

Noppes Homeland

26/09/2010 20:59:41
Quote Anchor link
Let wel dat daar waar je $_SESSION gebruikt bovenaan in het script ook de sessie start.

Post anders eens wat je hebt, dan kunnen we aanschouwen wat je niet begrijpt.
Gewijzigd op 26/09/2010 21:02:32 door Noppes Homeland
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 21:24:26
Quote Anchor link
Dat heb ik gedaan... Dat staat in post 1...
 
- SanThe -

- SanThe -

26/09/2010 21:30:42
Quote Anchor link
Jij hebt in je eerste post dit in een echo staan. Dat werkt uiteraard niet zo.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '.....' . $_SESSION["winkelwagen"][$artikelnummer] = $aantal . '...';
?>

Dit zal hoogstens een 1 (true) neerzetten.
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 21:32:51
Quote Anchor link
Nee, maar al stond die echo er niet, zou die nog niet werken. Het is iets wat ik heb overgetypt van dat "werkboek" wat we hebben, maar ik vind het handig als ik dat zou snappen zeg maar. Ik vind het nogal een vaag werkboek.

Ik heb de code gekregen van een klasgenootje. Ik hoop dat ik hem daarmee kan maken (zij had hem al wel voldoende af laten tekenen). Die ga ik nu helemaal analyseren en dan hoop ik dat hem toe kan passen in mijn eigen bestand.
 
- SanThe -

- SanThe -

26/09/2010 21:47:20
Quote Anchor link
Maar wat is nou concreet het probleem?
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 21:51:16
Quote Anchor link
Dat ik niet weet hoe ik verder moet.

Ik krijg de opdracht:
Maak het formulier aan, waarin (het eerste deel van) de winkelwagen wordt getoond. Dat is:
- de kop Inhoud winkelwagen
- de tabel, met daarin de kop Wijn, aantal, Prijs eenheid en Totaal.
- het registreren van het bestelde in de sessievariabele 'winkelwagen'.
- de twee submitbuttons, die samen in één formulier zitten.

Met de functies:
$_SERVER[PHP_SELF];
$_SESSION
session_start()

Nou, van te voren kreeg ik wel een een voorbeeld van hoe het eruit moest komen te zien en wat het kon doen.

Maar niet van hoe ik iets moest doen. De kop, de tabel en de twee submitbuttons lukken ook wel. Alleen niet dat wanneer ik bij Wijn (met artikelnummer 1) 5 (die ik dus wil bestellen, invul, dat hij dan in mijn winkelwagen ook wijn (met artikelnummer 1) 5 bestellen komt te staan zeg maar.
 
- SanThe -

- SanThe -

26/09/2010 21:55:21
Quote Anchor link
Gewoon een tabel maken lukt toch wel.
Waar loop je dan vast?
En wat heb je tot nu?
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 21:57:39
Quote Anchor link
Dat staat in post 1!

Een tabel maken lukt idd.

Maar ik krijg het niet voor elkaar dat wanneer ik bij wijn huppelepup 5 invoer en op bestellen klik, dat ik dan op de volgende pagina waar die dan heengaat (winkelwagen.php dus) dat er dan bij wijn huppelepup aantal 5 staat.
 
- SanThe -

- SanThe -

26/09/2010 22:00:49
Quote Anchor link
Laat het formulier eens zien.
In je eerste post is geen formulier.
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 22:03:00
Quote Anchor link
Is die relevant nu? Het formulier staat op de webwinkel.php, niet in de winkelwagen.php.

Dit is dat formulier wat ik heb in webwinkel.php:

echo '<form name="bestellen" method="post" action="winkelwagen.php"><input name="artikelnummer" type="hidden" value="' . $artikelnummer . '"><td>' . $omschrijving . '</td><td>' . $soort . '</td><td>' . $land . '</td><td>' . $verpakking . '</td><td>' . $prijs . '/' . $eenheid . '</td><td>' . $resultaat . '<td><input name="hoeveelheid" size="3" value="1"><input type="submit" name="Submit" value="Bestellen"></form></td>' ;
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.