Hulp met mijn script en externe functie (shoppingcart)
Ik kan er niet uitkomen! Ik heb alles een paar keer gecontroleerd, maar weet echt niet wat ik verkeerd doe?
Ik heb twee php bestanden. De main en de include functie.
Main:
Code (php)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
include("bestellingfuncties.php")
?>
</hr>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Korting:<br />
<input type="checkbox" name="korting1" value="15">Student 15%</br />
<input type="checkbox" name="korting2" value="10">Senior 10%</br />
<input type="checkbox" name="korting3" value="5">Klant 5%</br />
<hr />
Betalingswijze:
<input type="radio" name="Betalingswijze" value="Paypal">Paypal
<input type="radio" name="Betalingswijze" value="Mastercard">Mastercard
<input type="radio" name="Betalingswijze" value="Visa">Visa
<hr />
<tr>
<td>
<img src="toshiba.jpg" alt="Toshiba laptop" />
</td>
</tr>
<tr>
<td>
Toshiba Satellite A100-510 Basisprijs 999.99
</td>
</tr>
<tr>
<td><!--Shopping Cart Begin-->
<input type="hidden" name="product" value="001" />
<input type="hidden" name="merk" value="Toshiba" />
<input type="hidden" name="model" value="Satellite A100-510" />
Operating system:
<select name="os" value="true">
<option value="xp">Windows xp</option>
<option value="vista">Windows Vista</option>
<option value="linux">Linux</option>
</select>
Aantal:
<input type="text" size=2 maxlength=3 name="aantal" value="0" />
<input type="hidden" name="prijs" value="999.99" />
<input type="image" src="bestel.png" border=0 value="bestellen" />
</td>
<tr>
<td>
<img src="acer.jpg" alt="Acer laptop" />
</td>
</tr>
<tr>
<td>
Acer Aspire 57357Z Basisprijs 529.99
</td>
</tr>
<td>
<input type="hidden" name="product" value="002" />
<input type="hidden" name="merk" value="Acer" />
<input type="hidden" name="model" value="Aspire 5735Z" />
Operating system:
<select name="os" value="true">
<option value="xp">Windows xp</option>
<option value="vista">Windows Vista</option>
<option value="linux">Linux</option>
</select>
Aantal:
<input type="text" size=2 maxlength=3 name="aantal" value="0" />
<input type="hidden" name="prijs" value="529.99" />
<input type="image" src="bestel.png" border=0 value="bestellen" />
<hr /></td>
<!--Shopping Cart End -->
</tr>
</form>
</table>
<?php
echo "Korting is: " . ($_POST["korting1"] + $_POST["korting2"] + $_POST["korting3"]) . " procent" . "<br />";
if($_POST["aantal"] * $_POST["prijs"]>="5000")
{
echo "Kredietlimiet bereikt---Je bestelling mag maximaal 5000 euro’s bedragen " . $_POST["naam"];
}
else if($_POST["aantal"] * $_POST["prijs"]<"5000" && $_POST["aantal"] * $_POST["prijs"]>"0")
{
echo "Uw bestelling bedraagt " .$_POST["aantal"] * $_POST["prijs"];
}
switch($_POST['Betalingswijze'])
{
case "Paypal":
echo "<br />Uw betaling wordt behandeld via PayPal";
break;
case "Mastercard":
echo "<br />Uw betaling wordt behandeld via Mastercard";
break;
case "Visa":
echo "<br />Uw betaling wordt behandeld via Visa";
break;
default:
echo "<br />U moet een betalingswijze kiezen! <br />";
}
echo beschikbaarheid($_POST['merk'], $_POST['os']);
echo bestellingoverzicht()
?>
include("bestellingfuncties.php")
?>
</hr>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Korting:<br />
<input type="checkbox" name="korting1" value="15">Student 15%</br />
<input type="checkbox" name="korting2" value="10">Senior 10%</br />
<input type="checkbox" name="korting3" value="5">Klant 5%</br />
<hr />
Betalingswijze:
<input type="radio" name="Betalingswijze" value="Paypal">Paypal
<input type="radio" name="Betalingswijze" value="Mastercard">Mastercard
<input type="radio" name="Betalingswijze" value="Visa">Visa
<hr />
<tr>
<td>
<img src="toshiba.jpg" alt="Toshiba laptop" />
</td>
</tr>
<tr>
<td>
Toshiba Satellite A100-510 Basisprijs 999.99
</td>
</tr>
<tr>
<td><!--Shopping Cart Begin-->
<input type="hidden" name="product" value="001" />
<input type="hidden" name="merk" value="Toshiba" />
<input type="hidden" name="model" value="Satellite A100-510" />
Operating system:
<select name="os" value="true">
<option value="xp">Windows xp</option>
<option value="vista">Windows Vista</option>
<option value="linux">Linux</option>
</select>
Aantal:
<input type="text" size=2 maxlength=3 name="aantal" value="0" />
<input type="hidden" name="prijs" value="999.99" />
<input type="image" src="bestel.png" border=0 value="bestellen" />
</td>
<tr>
<td>
<img src="acer.jpg" alt="Acer laptop" />
</td>
</tr>
<tr>
<td>
Acer Aspire 57357Z Basisprijs 529.99
</td>
</tr>
<td>
<input type="hidden" name="product" value="002" />
<input type="hidden" name="merk" value="Acer" />
<input type="hidden" name="model" value="Aspire 5735Z" />
Operating system:
<select name="os" value="true">
<option value="xp">Windows xp</option>
<option value="vista">Windows Vista</option>
<option value="linux">Linux</option>
</select>
Aantal:
<input type="text" size=2 maxlength=3 name="aantal" value="0" />
<input type="hidden" name="prijs" value="529.99" />
<input type="image" src="bestel.png" border=0 value="bestellen" />
<hr /></td>
<!--Shopping Cart End -->
</tr>
</form>
</table>
<?php
echo "Korting is: " . ($_POST["korting1"] + $_POST["korting2"] + $_POST["korting3"]) . " procent" . "<br />";
if($_POST["aantal"] * $_POST["prijs"]>="5000")
{
echo "Kredietlimiet bereikt---Je bestelling mag maximaal 5000 euro’s bedragen " . $_POST["naam"];
}
else if($_POST["aantal"] * $_POST["prijs"]<"5000" && $_POST["aantal"] * $_POST["prijs"]>"0")
{
echo "Uw bestelling bedraagt " .$_POST["aantal"] * $_POST["prijs"];
}
switch($_POST['Betalingswijze'])
{
case "Paypal":
echo "<br />Uw betaling wordt behandeld via PayPal";
break;
case "Mastercard":
echo "<br />Uw betaling wordt behandeld via Mastercard";
break;
case "Visa":
echo "<br />Uw betaling wordt behandeld via Visa";
break;
default:
echo "<br />U moet een betalingswijze kiezen! <br />";
}
echo beschikbaarheid($_POST['merk'], $_POST['os']);
echo bestellingoverzicht()
?>
en bestellingfunctie:
Code (php)
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
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
<?php
function beschikbaarheid($merk, $os)
{
// deze functie heeft twee input parameters
// $merk verwijzt naar de merk-hash-array
// $os verwijzt naar de os-hash-array
// deze functie geeft de beschikbaarheid van de laptop met os terug.
$beschikbaar = array
(
"Toshiba" => array
(
"xp"=> "U heeft voor de operating system xp gekozen.",
"vista" => "Deze laptop is niet beschikbaar met de vista operating system.",
"linux" => "U heeft voor de operating system linux gekozen."
),
"Acer" => array
(
"xp"=> "U heeft voor de operating system xp gekozen.",
"vista" =>"U heeft voor de operating system vista gekozen.",
"linux" =>" U heeft voor de operating system linux gekozen."
),
"Hp" => array
("xp"=> "U heeft voor de operating system xp gekozen.",
"vista" => "Deze laptop is niet beschikbaar met de vista operating system.",
"linux" => "Deze laptop is niet beschikbaar met de linux operating system."
)
);
return($beschikbaar[$merk][$os]);
}
//
function bestellingoverzicht()
{
$laptop["toshiba"] = "toshiba";
$laptop["acer"] = "acer";
$info[1] = "product";
$info[2] = "merk";
$info[3] = "model";
$info[4] = "os";
$info[5] = "aantal";
$info[6] = "prijs";
echo "<br />
<table width='80%' border='1' >
<caption>
<strong>Bestellingoverzicht</strong>
</caption>
<thead>
<tr><th>Product</th><th>Merk</th><th>Model</th><th>OS</th><th>Aantal</th><th>Basisprijs</th></tr>
</thead>
<tbody>";
foreach($laptop as $key => $value)
{
$aantal = $value. "aantal";
if($_POST[$aantal] == 0) continue;
$reij = "<tr>";
for($x=1; $x<=sizeof($info); $x++)
{
$element = $value . $info[$x];
$reij = $reij . "<td>" . $_POST[$element] ."</td>";
}
$reij = $reij . "</tr>";
echo $reij;
}
echo "</tbody></table>";
}
?>
function beschikbaarheid($merk, $os)
{
// deze functie heeft twee input parameters
// $merk verwijzt naar de merk-hash-array
// $os verwijzt naar de os-hash-array
// deze functie geeft de beschikbaarheid van de laptop met os terug.
$beschikbaar = array
(
"Toshiba" => array
(
"xp"=> "U heeft voor de operating system xp gekozen.",
"vista" => "Deze laptop is niet beschikbaar met de vista operating system.",
"linux" => "U heeft voor de operating system linux gekozen."
),
"Acer" => array
(
"xp"=> "U heeft voor de operating system xp gekozen.",
"vista" =>"U heeft voor de operating system vista gekozen.",
"linux" =>" U heeft voor de operating system linux gekozen."
),
"Hp" => array
("xp"=> "U heeft voor de operating system xp gekozen.",
"vista" => "Deze laptop is niet beschikbaar met de vista operating system.",
"linux" => "Deze laptop is niet beschikbaar met de linux operating system."
)
);
return($beschikbaar[$merk][$os]);
}
//
function bestellingoverzicht()
{
$laptop["toshiba"] = "toshiba";
$laptop["acer"] = "acer";
$info[1] = "product";
$info[2] = "merk";
$info[3] = "model";
$info[4] = "os";
$info[5] = "aantal";
$info[6] = "prijs";
echo "<br />
<table width='80%' border='1' >
<caption>
<strong>Bestellingoverzicht</strong>
</caption>
<thead>
<tr><th>Product</th><th>Merk</th><th>Model</th><th>OS</th><th>Aantal</th><th>Basisprijs</th></tr>
</thead>
<tbody>";
foreach($laptop as $key => $value)
{
$aantal = $value. "aantal";
if($_POST[$aantal] == 0) continue;
$reij = "<tr>";
for($x=1; $x<=sizeof($info); $x++)
{
$element = $value . $info[$x];
$reij = $reij . "<td>" . $_POST[$element] ."</td>";
}
$reij = $reij . "</tr>";
echo $reij;
}
echo "</tbody></table>";
}
?>
De opdracht vraag was:
Stap 3: Open lab10.php en voeg een nieuwe laptop eraan toe zodat er een overzicht in een tabelformaat wordt.
Het is de bedoeling dat echt gebruik moet worden gemaakt van de foreach lus en het zou er zo uit moeten komen zien:
Ik hoop dat iemand mij kan helpen!
Gebruik [code][/code] tags voor het overzichtelijk weergeven van code. Zie ook de FAQ.[/modedit]
Gewijzigd op 02/01/2011 20:38:27 door Joren de Wit
code] en [/code] tags.
- Alleen relevante code plaatsen.
- Formulieren horen niet in tabellen gestylt te worden.
- Gebruik je nog html4 of gebruik je html5? Zo niet: je html is niet correct.
- Controleren of een post gedaan is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST').
- integers / php.net:integers horen niet tussen quotes.
- Kijk eens naar regel 34 van main.
- Het loopt zeker niet helemaal lekker in die bestellingoverzicht functie? Zie ook function.
)
- Code op het forum plaats je tussen [- Alleen relevante code plaatsen.
- Formulieren horen niet in tabellen gestylt te worden.
- Gebruik je nog html4 of gebruik je html5? Zo niet: je html is niet correct.
- Controleren of een post gedaan is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST').
- integers / php.net:integers horen niet tussen quotes.
- Kijk eens naar regel 34 van main.
- Het loopt zeker niet helemaal lekker in die bestellingoverzicht functie? Zie ook function.
)
Toevoeging op 02/01/2011 22:06:53:
Karl Karl op 02/01/2011 20:01:14:
- Code op het forum plaats je tussen [code] en [/code] tags.
- Alleen relevante code plaatsen.
- Formulieren horen niet in tabellen gestylt te worden.
- Gebruik je nog html4 of gebruik je html5? Zo niet: je html is niet correct.
- Controleren of een post gedaan is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST').
- integers / php.net:integers horen niet tussen quotes.
- Kijk eens naar regel 34 van main.
- Het loopt zeker niet helemaal lekker in die bestellingoverzicht functie? Zie ook function.
)
- Alleen relevante code plaatsen.
- Formulieren horen niet in tabellen gestylt te worden.
- Gebruik je nog html4 of gebruik je html5? Zo niet: je html is niet correct.
- Controleren of een post gedaan is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST').
- integers / php.net:integers horen niet tussen quotes.
- Kijk eens naar regel 34 van main.
- Het loopt zeker niet helemaal lekker in die bestellingoverzicht functie? Zie ook function.
)
Dank je voor je reactie. Karl, als het niet een te grote moeite is.. zou je me dan laten zien hoe ik het moet wijzigen.. dank je wel!
Toevoeging op 03/01/2011 13:32:46:
Niemand.. :(
Niemand die het even voor me kan wijzigen zodat het werkt..
Waarom, er zijn toch al tips gegeven?
We willen je wel helpen maar je zult zelf ook wat moeite moeten doen. Wat gaat er eigenlijk fout. Krijg je een foutmelding?
@Ozzie PHP, natuurlijk niet joh..
Het is voor mij beter om te zien wat ik moet wijzigen ipv een aantal tips waar ik niet verder mee kan.
Antwoord op je vraag: Nou, als je de scripts kopieert en test, dan wanneer je iets besteld doet het opeens niets meer.. (ik heb dus ook een nieuwe laptop toegevoegd).
Kan iemand het SVP voor me testen en vertellen wat fout is, ik kan echt niet meer verder en zit met mijn handen in de haren..
Quote:
Quote
@Aar, toch weet ik niet wat ik moet wijzigen.
@Aar, toch weet ik niet wat ik moet wijzigen.
Het wordt toch verteld in normaal Nederlands?
Maar goed je moet dus een foreach lus maken?
http://php.net/foreach
maar kan je gewoon neit specifiek zeggen waarop je vastloopt?
Bovendien is het hier phpHulp, en geen PHPafhaalbalie..
We helpen je immers toch, maar je zult wel zelf enige inzet moeten doen.
Ook lijkt het mij dat dit voor een school-opdracht is. Dus zelf inzet is zeker noodzakelijk, anders zou je jouw diploma niet mogen verdienen.
- Aar - op 04/01/2011 00:23:20:
Het wordt toch verteld in normaal Nederlands?
Maar goed je moet dus een foreach lus maken?
http://php.net/foreach
maar kan je gewoon neit specifiek zeggen waarop je vastloopt?
Bovendien is het hier phpHulp, en geen PHPafhaalbalie..
We helpen je immers toch, maar je zult wel zelf enige inzet moeten doen.
Ook lijkt het mij dat dit voor een school-opdracht is. Dus zelf inzet is zeker noodzakelijk, anders zou je jouw diploma niet mogen verdienen.
Quote:
Quote
@Aar, toch weet ik niet wat ik moet wijzigen.
@Aar, toch weet ik niet wat ik moet wijzigen.
Het wordt toch verteld in normaal Nederlands?
Maar goed je moet dus een foreach lus maken?
http://php.net/foreach
maar kan je gewoon neit specifiek zeggen waarop je vastloopt?
Bovendien is het hier phpHulp, en geen PHPafhaalbalie..
We helpen je immers toch, maar je zult wel zelf enige inzet moeten doen.
Ook lijkt het mij dat dit voor een school-opdracht is. Dus zelf inzet is zeker noodzakelijk, anders zou je jouw diploma niet mogen verdienen.
Dat begrijp ik wel ja, maar weet nog niet wat en hoe ik iets moet wijzigen. Wat betreft je reactie, ik zet zeker input. Doe elke dag uren aan en op een gegeven moment is de sloot te ver weg om over heen te springen en heb je iemand nodig met een boot om over te steken.
Nou het zit zo, eerst werkte het gewoon, maar nadat ik een extra laptop heb toegevoegd en de foreach functie, werkt het niet meer..
Klaas vieren op 05/01/2011 22:51:54:
Ga eerst eens die extra laptop en foreach functie weghalen. Werkt het nu weer? Ja? Dan stapje voor stapje code gaan toevoegen en goed kijken wat er mis gaat. Informatie over het gebruik van bepaalde functies kun je terugvinden op www.php.netNou het zit zo, eerst werkte het gewoon, maar nadat ik een extra laptop heb toegevoegd en de foreach functie, werkt het niet meer..
Mocht het alsnog niet lukken dan laat maar weer weten.
Gewijzigd op 05/01/2011 23:00:48 door Ozzie PHP