Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

switch und if, nur wie?

Empfohlene Antworten

Veröffentlicht

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

es hilft stark zu wissen welche Sprache du genutzt hast und in dem Fall wäre der (PHP?) Code den du versucht hast wichtig.

Kristallkugeln funktionieren hier nicht, also musst du schon mehr infos liefern.

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]

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

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

Super danke!!!

:uli

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]

jedenfalls schreibt man voraussichtlich mit einem r *Klug*******

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.