Een webwinkel.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- SanThe -

- SanThe -

26/09/2010 22:04:43
Quote Anchor link
Zet het even tussen [.code] en [./code] (zonder de punt er in) tags dan is het te lezen.
 
PHP hulp

PHP hulp

11/01/2025 16:42:03
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 22:06:00
Quote Anchor link
Oke sorry.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
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>
<td><input name="hoeveelheid" size="3" value="1"><input type="submit" name="Submit" value="Bestellen"></form></td>' ;
 
Kevin van Leeuwen

Kevin van Leeuwen

26/09/2010 22:06:10
Quote Anchor link
misschien een stomme opmerking maar,

is het niet handiger om zoiets te maken met een database ?
en baseren op eht IP-adres ? of moet hij met sessions ?

zo niet kun je dit doen :

je hebt het IP v.d. visitor, die sla je op met de toegevoegde producten, en die laat je de visitor weer zien.

Maar jah, als hij met sessions moet gaat dat niet :P
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 22:07:05
Quote Anchor link
Hij moet met sessions ;) want wij dachten dat eigenlijk ook zo te doen... alleen dat was dus niet goed...
 
Kevin van Leeuwen

Kevin van Leeuwen

26/09/2010 22:09:08
Quote Anchor link
okay met sessions dan, het bestelformulier en de winkelwagen lukken al ? Wat moet er dan nog gedaan worden ? Producten toevoegen en verwijderen of wat ?
 
- SanThe -

- SanThe -

26/09/2010 22:09:26
Quote Anchor link
Dit is maat 1 artikel. Is dat de bedoeling? En waar komt $artikelnummer vandaan? En de andere $vars?
 
Nicoow Unknown

Nicoow Unknown

26/09/2010 22:09:42
Quote Anchor link
Dus je hebt een formulier die je gebruikt om te bestellen.
Ik ga ervan uit dat je $_SERVER['PHP_SELF'] gebruikt als action van het formulier.

Zodra er iets "besteld" word, moeten er een aantal iets gebeuren.
- De bestelling opnemen, en in een sessie variabele zetten.

Dit kan je doen door heel simpel te zeggen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['winkelwagen'][$_POST['artikelNr'] = $_POST['aantal'];
?>


Nu kan dit gebeuren voor meerde artikelen, dus je $_SESSION['winkelwagen'] array bevat meerdere array's.

Nu wil je bij de winkelwagen een overzicht geven van de producten.
Hiervoor moet je alle producten in de $_SESSION['winkelwagen'] doorlopen.
Om een snel overzicht te geven, zou iets als dit moeten werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
foreach ($_SESSION['winkelwagen'] as $artikelNr => $aantal)
{

    echo 'Artikel Nummer: '. $artikelNr .'<br />';
    echo 'Aantal:         '. $aantal .'<br />';
    echo '<br /><br />';
}

?>


Nu kan je een array maken, waarin je de prijs van een bepaald artikel op slaat, met het artikel nummer als key van de array waarde.

Daarna kan je het aantal producten wat je hebt besteld vermenigvuldigen met $prijsLijst[$artikelNr].

Je zou dan nog een extra teller mee kunnen laten lopen, die daarna alles nog bij elkaar optelt.

Dit is een structuur die je zou kunnen gebruiken, maar ik snap niet precies wat je probleem discreet is.
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 22:11:20
Quote Anchor link
Ik doe wel even de hele code van de webwinkel, dat maakt het misschien wat duidelijker.

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
<?php
    session_start();
?>


<?php
    include("connect_database.php");
    
    $result = mysql_query('SELECT * FROM artikel');
    
    echo '<table border="2">';
    echo '<tr> <td> Wijn </td><td> Soort </td><td> Land </td><td> Verpakking </td><td> &#8364;/eenheid </td><td> Voorraad </td><td name="aantal"> Aantal eenheden </td>' ;
    while ($record = mysql_fetch_assoc($result)){
        $artikelnummer = $record['artikelnummer'];
        $omschrijving = $record['omschrijving'];
        $land = $record['land'];
        $soort = $record['soort'];
        $eenheid = $record['eenheid'];
        $prijs = $record['prijs'];
        $prijs = number_format($prijs , 2 , "," , ".");
        $verpakking = $record['verpakking'];
        $voorraad = $record['voorraad'];

        if ($voorraad < 0) {
            $resultaat = '0';
        }

        else {
            $resultaat = $voorraad;
        }

        
        echo '<tr>' ;
            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>' ;
        echo '</tr>' ;

    }

    
    mysql_close();
?>


Toevoeging op 26/09/2010 22:14:28:

Nou kort gezegd is het probleem dus dat ik de winkelwagen niet werkend krijg. Er komen geen producten in, hij onthoudt ze niet en ik kan er geen producten in verwijderen.
 
Kevin van Leeuwen

Kevin van Leeuwen

26/09/2010 22:15:14
Quote Anchor link
huh nu volg ik het niet meer ?

Eerst zeg je dat je niet met een database mag werken, en vervolgens gebruik je een database wees slim, maak een tabel bestellingen aan zet daarin id, ip, producten en insert gewoon de waardes die mensen bestellen, dus jantje op ip 89.258.45.77 besteld wijn, dan insert je dat naar wijn, met het ip 89.258.45.77 en met ID 1, want sessions zijn niet echt handig als je mij vraagt.

Misschien komt dit dom over, maar is maar een idee he :-)

Zie hier hoe een insert werkt : (voorbeeld) in mysql : http://www.phphulp.nl/php/forum/topic/insert-into-andere-mysqltabel/73398/last/
Gewijzigd op 26/09/2010 22:16:37 door Kevin van Leeuwen
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 22:17:38
Quote Anchor link
Ja maar van de wijnwinkel naar de winkelwagen (ja we moeten een webwinkel maken voor een wijnwinkel zeg maar) daarvoor moet je sessions gebruiken. Ik moet de producten dus invoeren in de database, handmatig. Dan moet ik ze uit de database halen voor de wijnwinkel, maar ik moet dit niet met de database doen omdat dat dus niet mag.
 
Kevin van Leeuwen

Kevin van Leeuwen

26/09/2010 22:18:33
Quote Anchor link
oh op die manier :P sorry had er ff verkeerd gelezen.
 
Nicoow Unknown

Nicoow Unknown

26/09/2010 22:21:30
Quote Anchor link
@Kevin, als je het leest, snap je dat ze voor deze opdracht moeten leren werken met Sessions, en daarom hiervoor nog geen database mogen gebruiken.
--Komt misschien niet helemaal vriendelijk over, maar zo bedoelde ik het niet--

@Eveline,
Je moet met $_SERVER['PHP_SELF'] werken, als je naar deze functie kijkt, dan zie je dat hij verwijst naar zijn eigen pagina.
Dit kan je gebruiken in een formulier, om de pagina naar zichzelf te laten posten, en het ook dynamisch te houden.

Je moet op je bestel pagina een stukje code schrijven die alle data in de session zet, en de winkelwagen.php leest het alleen uit.

Omdat ik vandaag zo goed bent, en je vanavond niet wil laten nacht braken, zal ik een stukje voor je schrijven, die je waardes in de session zetten, aan jou om deze juist te implementeren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

//Kijken of er een post request word gedaan
if (strtolower($_SERVER['REQUEST_METHOD'] == "post")
{

    //Er komt data binnen via POST
    $_SESSION['winkelwagen'][$_POST['artikelnummer']] = $_POST['hoeveelheid'];
}

?>


Dit is alles wat je nodig hebt om het weg te schrijven naar de database, het webwinkel overzicht staat al in mijn vorrige post, Succes!!
Gewijzigd op 26/09/2010 22:22:28 door Nicoow Unknown
 
- SanThe -

- SanThe -

26/09/2010 22:22:22
Quote Anchor link
Volgens mij heb je zo een werkend formulier:
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
43
44
45
46
47
48
49
50
51
52
53
<?php
session_start();
include("connect_database.php");

$result = mysql_query('SELECT * FROM artikel');

echo '<form name="bestellen" method="post" action="winkelwagen.php">
        <table border="2">
        <tr>
            <td> Wijn </td>
            <td> Soort </td>
            <td> Land </td>
            <td> Verpakking </td>
            <td> &#8364;/eenheid </td>
            <td> Voorraad </td>
            <td> Aantal eenheden </td>
        </tr>'
;

while ($record = mysql_fetch_assoc($result)){
    $artikelnummer = $record['artikelnummer'];
    $omschrijving = $record['omschrijving'];
    $land = $record['land'];
    $soort = $record['soort'];
    $eenheid = $record['eenheid'];
    $prijs = $record['prijs'];
    $prijs = number_format($prijs , 2 , "," , ".");
    $verpakking = $record['verpakking'];
    $voorraad = $record['voorraad'];

    if ($voorraad < 0) {
        $resultaat = 0;
    }

    else {
        $resultaat = $voorraad;
    }


    echo '<tr>
            <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>
            <td><input name="hoeveelheid'
. $artikelnummer . '" size="3" value="1"></td>
        </tr>'
;
}

echo '</table>
        <input type="submit" name="Submit" value="Bestellen">
        </form>'
;

mysql_close();
?>
Gewijzigd op 26/09/2010 22:46:06 door - SanThe -
 
Eveline Tralalalaaaa

Eveline Tralalalaaaa

26/09/2010 22:42:15
Quote Anchor link
Ik ben er hard mee bezig.

In ieder geval heel erg bedankt @Nico. Ik hoop dat ik eruit kom :)

Toevoeging op 26/09/2010 22:49:15:

Misschien een stomme vraag. Ik ben maar begonnen met je eerste post, @Nico, en nu geeft hij aan undefined index: *nummertje* als ik 6 heb ingevuld, staat er dus undefined index: 6.

Hoe komt dit, en belangrijker nog, hoe moet ik dit oplossen?

Nog een vraagje. Als ik de functie $_SERVER['PHP_SELF'] gebruik in mijn form bij action, dan gaat hij toch niet naar winkelwagen.php?
 
- SanThe -

- SanThe -

26/09/2010 23:02:05
Quote Anchor link
Eveline Tralalalaaaa op 26/09/2010 22:42:15:
.. geeft hij aan undefined index: *nummertje* als ik 6 heb ingevuld, staat er dus undefined index: 6.


Je hebt je input toch wel een fatsoenlijke naam gegeven en niet een getal als naam?


Eveline Tralalalaaaa op 26/09/2010 22:42:15:
Als ik de functie $_SERVER['PHP_SELF'] gebruik in mijn form bij action, dan gaat hij toch niet naar winkelwagen.php?


Nee, dan gaat die naar dezelfde pagina. Het gebruik van $_SERVER['PHP_SELF'] wordt trouwens afgeraden omdat het niet veilig is. Dan is "" nog veiliger.
 

Pagina: « vorige 1 2



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.