PHP script uitvoeren na druk op button.
Quote:
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
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
<?php
session_start();
session_register("session");
require "header.php";
if(!$login->get_login_info()) {
include('loginsysteem/login.inc.php');
} else {
// Toevoegen
if( isset( $_POST['ADD'] ) && ereg('^[1-9][0-9]*$', $_POST['aantal'])) {
$_SESSION['winkelwagen'][$_POST['artikelid']] = $_POST['aantal'];
}
// Verwijderen
if( isset( $_GET['DEL'] ) ) {
unset($_SESSION['winkelwagen'][$_GET['DEL']]);
}
// Laat lijst zien
echo $_SESSION['id'];
echo $_SESSION['winkelwagen'];
if( $_SESSION['winkelwagen'] ) {
$totaal = 0;
echo "<p><div class=\"big\">De Winkelwagen</div><br>";
echo "<table border=2 cellpadding=0 cellspacing=0>";
echo "<tr><td><b>Aantal</b></td><td><b>Naam</b></td><td><b>Prijs in €</b></td><td>Bewerken</td></tr>"; // bovenste regel
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr>";
echo "<td>$val</td>";
echo "<td>".$rij["Naam"]."</td>";
echo "<td>".number_format($rij["Prijs"], 2, ',', ' ')."</td>";
echo "<td><a href=\"".$_SERVER["PHP_SELF"]."?DEL=$key\">[Verwijder]</a>";
echo "</tr>";
$totaal = $totaal + ($rij["Prijs"] * $val);
}
}
echo "</table>";
echo "<p>Totaalbedrag: € ".number_format($totaal, 2, ',', ' ')."<br>";
echo ">> <a href=\"bestelling.php\" onClick=\"return Confirm(0)\">[Bestelling uitvoeren]</a>";
} else {
echo "De winkelwagen is momenteel leeg...";
}
if ($_GET["artikelid"]) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=".$_GET["artikelid"];
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$naam = mysql_result($result, 0, "Naam");
$prijs = number_format(mysql_result($result, 0, "Prijs"), 2, ',', ' ');
echo "<p><div class=\"big\">Artikel toevoegen aan winkelwagen</div>";
echo "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">";
echo "<input type=\"hidden\" name=\"artikelid\" value=\"".$_GET["artikelid"]."\">";
echo "<input type=\"text\" name=\"aantal\" value=\"1\" size=\"2\" maxlength=2>";
echo " x Artikel: $naam (prijs: $prijs euro)";
echo "<input type=\"submit\" name=\"ADD\" value=\"Toevoegen\">";
echo "</form>";
}
}
}
require "footer.php";
?>
session_start();
session_register("session");
require "header.php";
if(!$login->get_login_info()) {
include('loginsysteem/login.inc.php');
} else {
// Toevoegen
if( isset( $_POST['ADD'] ) && ereg('^[1-9][0-9]*$', $_POST['aantal'])) {
$_SESSION['winkelwagen'][$_POST['artikelid']] = $_POST['aantal'];
}
// Verwijderen
if( isset( $_GET['DEL'] ) ) {
unset($_SESSION['winkelwagen'][$_GET['DEL']]);
}
// Laat lijst zien
echo $_SESSION['id'];
echo $_SESSION['winkelwagen'];
if( $_SESSION['winkelwagen'] ) {
$totaal = 0;
echo "<p><div class=\"big\">De Winkelwagen</div><br>";
echo "<table border=2 cellpadding=0 cellspacing=0>";
echo "<tr><td><b>Aantal</b></td><td><b>Naam</b></td><td><b>Prijs in €</b></td><td>Bewerken</td></tr>"; // bovenste regel
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr>";
echo "<td>$val</td>";
echo "<td>".$rij["Naam"]."</td>";
echo "<td>".number_format($rij["Prijs"], 2, ',', ' ')."</td>";
echo "<td><a href=\"".$_SERVER["PHP_SELF"]."?DEL=$key\">[Verwijder]</a>";
echo "</tr>";
$totaal = $totaal + ($rij["Prijs"] * $val);
}
}
echo "</table>";
echo "<p>Totaalbedrag: € ".number_format($totaal, 2, ',', ' ')."<br>";
echo ">> <a href=\"bestelling.php\" onClick=\"return Confirm(0)\">[Bestelling uitvoeren]</a>";
} else {
echo "De winkelwagen is momenteel leeg...";
}
if ($_GET["artikelid"]) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=".$_GET["artikelid"];
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$naam = mysql_result($result, 0, "Naam");
$prijs = number_format(mysql_result($result, 0, "Prijs"), 2, ',', ' ');
echo "<p><div class=\"big\">Artikel toevoegen aan winkelwagen</div>";
echo "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">";
echo "<input type=\"hidden\" name=\"artikelid\" value=\"".$_GET["artikelid"]."\">";
echo "<input type=\"text\" name=\"aantal\" value=\"1\" size=\"2\" maxlength=2>";
echo " x Artikel: $naam (prijs: $prijs euro)";
echo "<input type=\"submit\" name=\"ADD\" value=\"Toevoegen\">";
echo "</form>";
}
}
}
require "footer.php";
?>
Dus dat dan dit script wordt gestart:
Quote:
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
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
if( $_SESSION['winkelwagen'] ) {
echo "<table border=2 cellpadding=0 cellspacing=0>";
echo "<tr><td><b>Aantal</b></td><td><b>Naam</b></td><td><b>Prijs in €</b></td></tr>"; // bovenste regel
$totaal = 0;
$info = $login->get_login_info('alles');
$klantid = $info['id'];
$sql = "INSERT INTO Bestelling (KLANT_ID) VALUES ($klantid)";
if (!mysql_query($sql))
echo "Toevoegen bestelling mislukt!";
$bestellingid = mysql_insert_id();
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr>";
echo "<td>$val</td>";
echo "<td>".$rij["Naam"]."</td>";
echo "<td>".number_format($rij["Prijs"], 2, ',', ' ')."</td>";
echo "</tr>";
$totaal = $totaal + ($rij["Prijs"] * $val);
$prijs = $rij["Prijs"];
$datum = date("d-m-Y", time());
$sql = "INSERT INTO Bestellijn (BESTELLING_ID, ARTIKEL_ID, Aantal, Prijs, Datum) VALUES ($bestellingid, $key, $val, $prijs, NOW())";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen bestelling deel 2 mislukt!";
}
}
}
echo "<tr><td></td><td>Totaal</td><td>".$totaal."</td></tr>";
echo "</table>";
$sql = "UPDATE Bestelling SET Bedrag=$totaal WHERE BESTELLING_ID=$bestellingid";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen bestelling deel 2 mislukt!";
}
}
?>
if( $_SESSION['winkelwagen'] ) {
echo "<table border=2 cellpadding=0 cellspacing=0>";
echo "<tr><td><b>Aantal</b></td><td><b>Naam</b></td><td><b>Prijs in €</b></td></tr>"; // bovenste regel
$totaal = 0;
$info = $login->get_login_info('alles');
$klantid = $info['id'];
$sql = "INSERT INTO Bestelling (KLANT_ID) VALUES ($klantid)";
if (!mysql_query($sql))
echo "Toevoegen bestelling mislukt!";
$bestellingid = mysql_insert_id();
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr>";
echo "<td>$val</td>";
echo "<td>".$rij["Naam"]."</td>";
echo "<td>".number_format($rij["Prijs"], 2, ',', ' ')."</td>";
echo "</tr>";
$totaal = $totaal + ($rij["Prijs"] * $val);
$prijs = $rij["Prijs"];
$datum = date("d-m-Y", time());
$sql = "INSERT INTO Bestellijn (BESTELLING_ID, ARTIKEL_ID, Aantal, Prijs, Datum) VALUES ($bestellingid, $key, $val, $prijs, NOW())";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen bestelling deel 2 mislukt!";
}
}
}
echo "<tr><td></td><td>Totaal</td><td>".$totaal."</td></tr>";
echo "</table>";
$sql = "UPDATE Bestelling SET Bedrag=$totaal WHERE BESTELLING_ID=$bestellingid";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen bestelling deel 2 mislukt!";
}
}
?>
En de bestellingid die ik hier aanmaak moet ik in één string meegeven naar de volgende pagina.
Hoe kan ik dit het beste aanpassen? Als er nog meer gegevens nodig zijn hoor ik het graag.
Alvast bedankt,
Matthijs
Gewijzigd op 01/12/2010 12:43:14 door Matthijs PHPHULP
Gebruik bij echo liever ' ipv ", scheelt je een heleboel keren escapen.
Variabelen buiten quotes.
eregi en session_register: This function has been DEPRECATED
Wat betreft je eigenlijke vraag: wat gaat er fout als je klikt op de link op regel 50 in het 1e script?
Gewijzigd op 01/12/2010 13:30:35 door Obelix Idefix
dit iets? (dmv een onclick kan je met een ajax script een ander php script aanroepen)
Toegegeven, ik heb me niet helemaal in je script verdiept, maar je zou in je script de voorwaarde kunnen toevoegen (isset($_POST['de_naam_van_submit_button'])), of er een functie van maken of wellicht is @Obelix en idefix, als ik de 2e code toevoeg aan de eerste code en dan met behulp van (isset($_POST['de_naam_van_submit_button'])).
Dan heb ik deze code:
Quote:
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
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
<?php
session_start();
session_register("session");
require "header.php";
if (isset($_POST['Verder'])) {
$totaal = 0;
$info = $login->get_login_info('alles');
$klantid = $info['id'];
$sql = "INSERT INTO Bestelling (KLANT_ID) VALUES ($klantid)";
if (!mysql_query($sql))
echo "Toevoegen bestelling mislukt!";
$bestellingid = mysql_insert_id();
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
$totaal = $totaal + ($rij["Prijs"] * $val);
$prijs = $rij["Prijs"];
$datum = date("d-m-Y", time());
$sql = "INSERT INTO Bestellijn (BESTELLING_ID, ARTIKEL_ID, Aantal, Prijs, Datum) VALUES ($bestellingid, $key, $val, $prijs, NOW())";
if (!mysql_query($sql)) { // voer SQL code uit
}
}
$sql = "UPDATE Bestelling SET Bedrag=$totaal WHERE BESTELLING_ID=$bestellingid";
if (!mysql_query($sql)) { // voer SQL code uit
}
header('location:bestelling.php');
exit;
}}
if(!$login->get_login_info()) {
include('loginsysteem/login.inc.php');
} else {
// Toevoegen
if( isset( $_POST['ADD'] ) && ereg('^[1-9][0-9]*$', $_POST['aantal'])) {
$_SESSION['winkelwagen'][$_POST['artikelid']] = $_POST['aantal'];
}
// Verwijderen
if( isset( $_GET['DEL'] ) ) {
unset($_SESSION['winkelwagen'][$_GET['DEL']]);
}
// Laat lijst zien
echo $_SESSION['id'];
echo $_SESSION['winkelwagen'];
if( $_SESSION['winkelwagen'] ) {
$totaal = 0;
echo "<p><div class=\"big\">De Winkelwagen</div><br>";
echo "<table border=2 cellpadding=0 cellspacing=0>";
echo "<tr><td><b>Aantal</b></td><td><b>Naam</b></td><td><b>Prijs in €</b></td><td>Bewerken</td></tr>"; // bovenste regel
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr>";
echo "<td>$val</td>";
echo "<td>".$rij["Naam"]."</td>";
echo "<td>".number_format($rij["Prijs"], 2, ',', ' ')."</td>";
echo "<td><a href=\"".$_SERVER["PHP_SELF"]."?DEL=$key\">[Verwijder]</a>";
echo "</tr>";
$totaal = $totaal + ($rij["Prijs"] * $val);
}
}
echo "</table>";
echo "<p>Totaalbedrag: € ".number_format($totaal, 2, ',', ' ')."<br>";
echo ">> <a href=\"bestelling.php\" onClick=\"return Confirm(0)\">[Bestelling uitvoeren]</a>";
echo ' <form>
<input type="submit" value="Verder" />
</form>';
} else {
echo "De winkelwagen is momenteel leeg...";
}
if ($_GET["artikelid"]) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=".$_GET["artikelid"];
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$naam = mysql_result($result, 0, "Naam");
$prijs = number_format(mysql_result($result, 0, "Prijs"), 2, ',', ' ');
echo "<p><div class=\"big\">Artikel toevoegen aan winkelwagen</div>";
echo "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">";
echo "<input type=\"hidden\" name=\"artikelid\" value=\"".$_GET["artikelid"]."\">";
echo "<input type=\"text\" name=\"aantal\" value=\"1\" size=\"2\" maxlength=2>";
echo " x Artikel: $naam (prijs: $prijs euro)";
echo "<input type=\"submit\" name=\"ADD\" value=\"Toevoegen\">";
echo "</form>";
}
}
}
require "footer.php";
?>
session_start();
session_register("session");
require "header.php";
if (isset($_POST['Verder'])) {
$totaal = 0;
$info = $login->get_login_info('alles');
$klantid = $info['id'];
$sql = "INSERT INTO Bestelling (KLANT_ID) VALUES ($klantid)";
if (!mysql_query($sql))
echo "Toevoegen bestelling mislukt!";
$bestellingid = mysql_insert_id();
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
$totaal = $totaal + ($rij["Prijs"] * $val);
$prijs = $rij["Prijs"];
$datum = date("d-m-Y", time());
$sql = "INSERT INTO Bestellijn (BESTELLING_ID, ARTIKEL_ID, Aantal, Prijs, Datum) VALUES ($bestellingid, $key, $val, $prijs, NOW())";
if (!mysql_query($sql)) { // voer SQL code uit
}
}
$sql = "UPDATE Bestelling SET Bedrag=$totaal WHERE BESTELLING_ID=$bestellingid";
if (!mysql_query($sql)) { // voer SQL code uit
}
header('location:bestelling.php');
exit;
}}
if(!$login->get_login_info()) {
include('loginsysteem/login.inc.php');
} else {
// Toevoegen
if( isset( $_POST['ADD'] ) && ereg('^[1-9][0-9]*$', $_POST['aantal'])) {
$_SESSION['winkelwagen'][$_POST['artikelid']] = $_POST['aantal'];
}
// Verwijderen
if( isset( $_GET['DEL'] ) ) {
unset($_SESSION['winkelwagen'][$_GET['DEL']]);
}
// Laat lijst zien
echo $_SESSION['id'];
echo $_SESSION['winkelwagen'];
if( $_SESSION['winkelwagen'] ) {
$totaal = 0;
echo "<p><div class=\"big\">De Winkelwagen</div><br>";
echo "<table border=2 cellpadding=0 cellspacing=0>";
echo "<tr><td><b>Aantal</b></td><td><b>Naam</b></td><td><b>Prijs in €</b></td><td>Bewerken</td></tr>"; // bovenste regel
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr>";
echo "<td>$val</td>";
echo "<td>".$rij["Naam"]."</td>";
echo "<td>".number_format($rij["Prijs"], 2, ',', ' ')."</td>";
echo "<td><a href=\"".$_SERVER["PHP_SELF"]."?DEL=$key\">[Verwijder]</a>";
echo "</tr>";
$totaal = $totaal + ($rij["Prijs"] * $val);
}
}
echo "</table>";
echo "<p>Totaalbedrag: € ".number_format($totaal, 2, ',', ' ')."<br>";
echo ">> <a href=\"bestelling.php\" onClick=\"return Confirm(0)\">[Bestelling uitvoeren]</a>";
echo ' <form>
<input type="submit" value="Verder" />
</form>';
} else {
echo "De winkelwagen is momenteel leeg...";
}
if ($_GET["artikelid"]) {
$sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=".$_GET["artikelid"];
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$naam = mysql_result($result, 0, "Naam");
$prijs = number_format(mysql_result($result, 0, "Prijs"), 2, ',', ' ');
echo "<p><div class=\"big\">Artikel toevoegen aan winkelwagen</div>";
echo "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">";
echo "<input type=\"hidden\" name=\"artikelid\" value=\"".$_GET["artikelid"]."\">";
echo "<input type=\"text\" name=\"aantal\" value=\"1\" size=\"2\" maxlength=2>";
echo " x Artikel: $naam (prijs: $prijs euro)";
echo "<input type=\"submit\" name=\"ADD\" value=\"Toevoegen\">";
echo "</form>";
}
}
}
require "footer.php";
?>
Maar als ik dan op de button verder druk(lijn 82) gebeurt er niks, de code wordt dan ook niet uitgevoerd. En op het moment dat die code uitgevoerd is wil ik dat de gebruiker wordt doorgestuurd naar het volgende scherm.
Code (php)
Daarnaast zou je bijvoorbeeld kunnen werken met een variabele die je "status" noemt, bijvoorbeeld een hiddenfield waarin je de waarde $returnstatus stopt.
bij het laden van de pagina zeg je $returnstatus = "insert";
Wordt de pagina gepost dan krijg je de waarde $_POST['status'] == "insert". Dit zou vervolgens een voorwaarde voor (een deel van) je script kunnen zijn.
In dat deel zet je dan weer de nieuwe "returnstatus" voor de volgende post... bijvoorbeeld $returnstatus = "update";
In ieder geval bedankt.