[PHP]aantal producten in winkelmandje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 16:33
als 1 product aan het winkel mandje toevoeg en daar vervolgens het aantal van verander en dan op herbereken druk wordt ook inderdaad het aantal veranderd, als ik nu 2 of meer artikelen in het winkel mandje en op herbereken druk dan wordt alleen de laatste bij gewerkt. Elk aantal veld heeft een als ik het goed gedaan heb een combinatie van ID en aantal, de waardes worden in een array opgeslagen. Ik vermoet dat het fout gaat bij het toevoegen van de waarde in een array. Wie weet wat ik hier fout doe? Ik heb alle functies van en array bekeken maar er werkt er geen 1, ik denk dat het toevoegen van de nieuwe waarden iet goed gaat.

code:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php 
error_reporting(E_ALL); 
session_start(); 

// kijken of array bestaad, zo niet 1 aanmaken 
if (!isset($_SESSION['mandje'])) { 
    $_SESSION['mandje'] = array(); 
} 

if ($_GET['Submit'] == 'Herbereken') { 
$arraycount = count($_SESSION['mandje']); 
    for ($i = 0; $i < $arraycount; $i++) { 
    array_fill ($_SESSION['mandje'][$_GET['pid']] = $_GET['aantal_product']); 
    } 
} elseif (!$_GET['Submit'] == 'Herbereken') {  
    $aid = $_GET['artikel_id']; 
    } 

if (!in_array($aid, $_SESSION['mandje'])) { 
        $_SESSION['mandje'][$aid] = 1; 
        foreach ($_SESSION['mandje'] as $id => $aantal) { 
        AddedProduct($id, $aantal); 
        } 
        } elseif (in_array($aid, $_SESSION['mandje'])) { 
            foreach ($_SESSION['mandje'] as $id => $aantal) { 
                AddedProduct($id, $aantal); 
            } 
            echo "bestaal al"; 
        } 

function AddedProduct($fid, $faantal) { 

$DBserver = 'localhost';    //Database server 
$DBuser = 'user';        //Database gebruiker 
$DBpass = 'password';        //Database wachtwoord 
$DBname = 'database';        //Database naam 

//Verbinding maken met de database en tabellen laten genereren 
$DBconnect = mysql_connect($DBserver, $DBuser, $DBpass); 
mysql_select_db($DBname, $DBconnect); 
$artikelen_sql = "SELECT * FROM artikelen WHERE ID =" . $fid; 
$artikelen_result = mysql_query($artikelen_sql); 
while ($artikelen = mysql_fetch_array($artikelen_result)) { 

?> 

<form name="producten" method="get" action="toevoegen.php"> 
  <table width="800" border="0" cellspacing="0" cellpadding="0"> 
  <tr> 
    <td width="188"><?php echo $artikelen['Merk']; ?></td> 
    <td width="188"><?php echo $artikelen['Product']; ?></td> 
    <td width="132"><?php echo $artikelen['Inhoud']; ?></td> 
    <td width="132"><?php echo $artikelen['Prijs']; ?></td> 
    <td width="86">Aantal: 
      <input name="aantal_product" type="text" value="<?php echo $faantal; ?>" size="2" maxlength="3"> 
      </td> 
          <td width="74">&euro; <?php $sub_totaal = $artikelen['Prijs'] * $faantal; echo $sub_totaal; ?> 
          <input name="pid" type="hidden" value="<?php echo $fid; ?>"></td> 
  </tr> 
</table> 
<?php 

global $fid; 
global $totaal; 
$totaal = $totaal + $sub_totaal; 
} 
} 

echo "<br><b> Totaal prijs: €" . $totaal . "<b>"; 
@mysql_close(); 
?> 
<br> 
<input type="submit" name="Submit" value="Herbereken"> 
</form> 
</body> 
</html>

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

76 regels code gaat echt geen mens voor je doorlezen hoor, tis hier geen gratis debug-my-code service :)

Isoleer het probleem zo ver mogelijk, geef alleen de relevante code, en geef aan wat je vermoed dat het probleem is. In other words: P&W FAQ - De "quickstart" :)

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Het lijkt misschien een PHP probleem, maar ik vrees dat in dit geval jouw HTML kennis de boosdoener is.
Voor elk artikel wordt er een nieuw open form tag (<form>) neergezet. Ik weet niet welke browser je gebruikt om je spullen te testen, maar ik weet dat IE er daarmee van uit gaat dat de eerdere <form> tag moet worden afgesloten.
De submit knop komt uiteindelijk dus in het laatste form te staan en alleen de gegevens van het laatste artikel zullen worden gesubmit.

Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
curry684 schreef op dinsdag 18 januari 2005 @ 14:09:
76 regels code gaat echt geen mens voor je doorlezen hoor, tis hier geen gratis debug-my-code service :)
...
offtopic:
Jawel hoor ;)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

bigbeng schreef op dinsdag 18 januari 2005 @ 14:10:
Het lijkt misschien een PHP probleem, maar ik vrees dat in dit geval jouw HTML kennis de boosdoener is.
Voor elk artikel wordt er een nieuw open form tag (<form>) neergezet. Ik weet niet welke browser je gebruikt om je spullen te testen, maar ik weet dat IE er daarmee van uit gaat dat de eerdere <form> tag moet worden afgesloten.
De submit knop komt uiteindelijk dus in het laatste form te staan en alleen de gegevens van het laatste artikel zullen worden gesubmit.
Samenvattend: gebruik maar één formulier, en voor de naamgeving van je variabelen gebruik je het liefst een array. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.