Bestellservice, Frage

Ador

Erfahrenes Mitglied
Hallo,

ich hab hier ein Bestellservice in PHP programmiert.
Es sind mehrere Schritte und Seiten die der Kunde durchläuft und das ganze läuft mit einer xml-Datei zusammen.

1. Speise auswählen -->
2. Auswertung der Bestellung (übersicht über alles, mit allen gewählten Speisen und Preisen usw. --> bestellen
3. Bestellt (vielen Dank das Sie Bestellt.....)

Nun möchte ich in den 2 Schritt, wo man angezeigt bekommt was alles bestellt wurde und wieviel es kostet usw. eine Funktion einbauen, dass man nochmal z.B. eine Speise löschen kann oder sogar die Menge nochmal verändern und anpassen kann.

Wie geh ich das am besten an?

mfg
ad0r
 
Wenn du dich mit AJAX auskennst dann geht folgendes damit ganz bequem (für den Benutzer). Ansonsten passt das aber auch für PHP.

Auf der zweiten Seite ein Formular mit dieser Übersicht. Hinter der Bestellung steht die Menge in einem Input-Feld. Daneben nochmal ein Kontrollkästchen zum löschen.

Der Form würde ich dann zwei Button zum Absenden geben:
HTML:
<input type="submit" name="do" value="Aktualisieren" />
<input type="submit" name="do" value="Bestellen!" />

Sendet man dies ab so steht im Post / Get die Bestellung nochmal mit allen Checkboxen zum löschen und Input-Feldern für die Menge und folgendes (bei method="post"):

$_POST["do"] = "Aktualisieren", wenn der Benutzer das ganze nochmal sehen möchte mit den änderungen.
$_POST["do"] = "Bestellen!", wenn der Benutzer es bestellt.

Probier es mal.
 
hey, Danke!

hab das soweit eingebaut, dass ich nochmal an der Stelle ne Auswahl hab, wo man die Menge von 1 -10 wählen kann, wo direkt schon der ausgerechnete Preis dabei steht.
Nun hab ich nurnoch ein Problem, wie muss ich den den "Aktualisieren" Button machen, damit er nur die Seite mit der Menge aktualisiert und nicht wie bisher beim klicken auf den "Submit" Button direkt absendet?

PHP:
echo '<br><br><input type="submit" value="Aktualisieren!">';
echo '<br><br><input type="submit" value="Bestellen!">';

Die beiden hab ich nun. Ich versteh aber noch nicht ganz, wie ich nun nur aktualisieren lasse?
Im Augenblick ist es so, dass wenn man den Submit Button klickt, direkt alles per mail versand wird.

mfg
 
HTML:
<input type="submit" name="do" value="Aktualisieren" />
<input type="submit" name="do" value="Bestellen!" />

<input type="submit" value="Aktualisieren!">';
<input type="submit" value="Bestellen!">

Kennst du Suchbilder? Wo ist der Unterschied? ;)

Das macht es aus zu Unterscheiden ob "Aktualisieren!" oder "Bestellen!" angeklickt wurde.

Noch nicht verstanden? Dann spiel mal nur hiermit rum:
PHP:
<form method="post">
	<input type="submit" name="do" value="Refresh"/>
	<input type="submit" name="do" value="Send"/>
</form>

<?php
var_dump($_POST);
?>
 
mein form sieht so aus:

Code:
<form action="best_abschicken.php" method="post">

Wenn ich nun nen Submit Button betätige, lande ich eben immer auf "best_abschicken.php".

mfg
 
Schick deine Form nicht dahin, wenn du es nicht willst, sondern zu der aktuellen Seite. Und wenn diese merkt, dass das Feld "do" den Wert "Bestellen" hat, dann werden die Daten zum Beispiel in einer Session gespeichert und es gibt eine Weiterleitung zur eigentlichen Bestellung.

Zweite Möglichkeit, die vielleicht nicht valide ist wären zwei Formulare ineinander:
HTML:
<form method="bestell.php">
  <form method="">
    ....
    <input type="submit" value="Aktualisier" />
  </form>
  <input type="submit" value="Bestell" />
</form>

Das müsstest du noch auf Validität und Funktionalität testen.
 
Zuletzt bearbeitet:
Warum nimmst Du dann den Type "submit"?
In deinem Fall wäre Button der richtige Typ.

HTML:
<input type="button" name="test" value="senden" />

und diesen dan mit einem Onklick-Event abschicken.
 
Zuletzt bearbeitet:
Hier ist Vorfahrt achten. Links vor Scripts.

Die äquivalente "Nicht-JavaScript-Lösung" hat Vorfahrt, weil nicht jeder JavaScript aktiviert hat ;) Zumindest steht das in meiner eigenen Codeverkehrsordnung ^ ^
 
Zurück