Zum Inhalt springen

switch und if, nur wie?


Crowz

Empfohlene Beiträge

Guten morgen die Herrschaften,

ich bin dabei ein Pizzabestellscript zu entwickeln :P

Naja nun möchte ich umsetzten das sich der Preis nach der Größe ändert.

Ich habe eine Auswahl von 3 Größen gebastelt mit ganz simpel:


<table>
<tr>
<th> Pizza Größe? </th>
<td>
<select name="Größe" size="1" >
<option>klein</option>
<option>mittel</option>
<option>groß</option>
</select>
</td>
</tr>
</table>
[/PHP]

Im nächsten <tr> soll der Preis bestimmt werden allerdings soll dieser automatisch generiert werden.

Das heißt wenn ich auf der Website den Menupunkt klein auswähle soll dann z.B. der Preis von 3 Euro stehen.

Dies habe ich mit switch und mit if Abfragen versucht. Allerdings bin ich daran gescheitert. Wie beziehe ich mich denn auf die Zeile der <option> klein </option> z.B.?

Könnt ihr mir bitte helfen das umzusetzten?

Gruß Crowz

Link zu diesem Kommentar
Auf anderen Seiten teilen

sry...

Der code ist natürlich PHP

und ich versuche es im moment folgendermaßen


<html>
<?phP
$test = "<option> klein </option>";
$test2 = "<option> mittel </option>";
$test3 = "<option> groß </option>";
$test1 = $test.$test2.$test3;
?>
<table>
<tr>
<th>Pizza Größe?</th>
<td>
<select name="Größe" size="1" >
<?php
echo $test;
echo $test2;
echo $test3;
?>
</select>
<input type="submit" value="Pizzagröße bestätigen bitte!">
</td>
</tr>
<tr>
<th> Preis</th>
<td>
<?php
switch ($test1)
{
case $test:
echo "Ihre Pizza wird vorraussichtlich 3 Euro kosten!";
break;
case $test2:
echo "Ihre Pizza wird vorraussichtlich 4 Euro kosten!";
break;
case $test3:
echo "Ihre Pizza wird vorraussichtlich 5 Euro kosten!";
break;
}
?>
</td>
</tr>
</table>
</html>
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube, Du vermischst hier etwas. Du versuchst, in einem Skript herauszufinden, was der Benutzer gewählt hat, bevor er es auswählen kann. Das korrekte Vorgehen ist folgendes:

Eingabeformular mit den drei Möglichkeiten und einer Action auf Dein PHP-Auswertungsskript definieren und anzeigen. Die Options haben alle den selben Namen und einen unterschiedlichen Wert. Im Auswertungsskript prüfst Du jetzt anhand der GET bzw. POST Parameter, welche Auswahl der Benutzer getätigt hat und gibst ihm entsprechendes Feedback.

Schau am besten noch mal bei SELFHTML 8.1.2 (HTML-Dateien selbst erstellen) und einem PHP-Grundlagentutorial Deiner Wahl vorbei.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Probier es mal so

<html>
<?phP
// Vorne die angezeigte Größe und hinten der Preis für die Größe
// Z.b. Größe "klein" Preis für diese Größe 3€
// Z.b. Größe "mittel" Preis für diese Größe 4€
// Z.b. Größe "groß" Preis für diese Größe 5€
$groessen = array("klein"=>3,"mittel"=>4,"groß"=>5);

?>
<form method="post">
<input type="hidden" name="action" value="performed">
<table>
<tr>
<th>Pizza Größe?</th>
<td>
<select name="Größe" size="1" >
<?php
foreach ($groessen as $groesse => $preis){
echo '<option value="'.$preis.'">'.$groesse.'</option>';
}

?>
</select>
<input type="submit" value="Pizzagröße bestätigen bitte!">
</td>
</tr>
<?
if ($_POST["action"]=="performed"){
?>

<tr>
<th> Preis</th>
<td>
<?php
switch ($_POST["Größe"])
{
case "3":
echo "Ihre Pizza wird vorraussichtlich 3 Euro kosten!";
break;
case "4":
echo "Ihre Pizza wird vorraussichtlich 4 Euro kosten!";
break;
case "5":
echo "Ihre Pizza wird vorraussichtlich 5 Euro kosten!";
break;
}

// könnte man auch noch ändern in
/*
echo "Ihre Pizza wird vorraussichtlich ".$_POST["Größe"]." Euro kosten!";
*/
?>
</td>
</tr>
<?
}
?>
</table>
</html>[/PHP]

Bearbeitet von Mike1990
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier eine Javascript Variante vom "Pizzascript"

<html>
<?phP
// Vorne die angezeigte Größe und hinten der Preis für die Größe
// Z.b. Größe "klein" Preis für diese Größe 3€
// Z.b. Größe "mittel" Preis für diese Größe 4€
// Z.b. Größe "groß" Preis für diese Größe 5€
$groessen = array("klein"=>3,"mittel"=>4,"groß"=>5);

?>

<script type="text/javascript">
<!--

function setPrize(prize){
if (prize!=""){
document.getElementById("price").style.display = "block";
document.getElementById("priceField").style.display = "block";
document.getElementById("priceField").innerHTML = "Ihre Pizza wird vorraussichtlich " + prize + " Euro kosten!";
}else{
document.getElementById("price").style.display = "none";
document.getElementById("priceField").style.display = "none";
}
}

-->
</script>

<form method="post">
<input type="hidden" name="action" value="performed">
<table>
<tbody>
<tr>
<td>
Pizza Größe?
</td>
<td>
<select name="Größe" size="1" onchange="javascript:setPrize(this.value);">
<option value="">Bitte wählen</option>
<?php
foreach ($groessen as $groesse => $preis){
echo '<option value="'.$preis.'">'.$groesse.'</option>';
}

?>
</select>
</td>
</tr>
<tr>
<td>
<span id="price" style="display:none;">
Preis
</span>
</td>
<td>
<span id="priceField" style="display:none;">

</span>
</td>
</tr>
</tbody>
</table>
</html>[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...