0

私はこの課題に取り組んでおり、誰かがサンドイッチで欲しいものを注文する小さな Web アプリを作成し、注文を受けた人がサンドイッチを作るように簡単な言葉で表現する必要があります。

複数の「おまけ」を選択すると、すべての画像が表示されません。1 つを選択すると正常に動作します。PHP の output3 と output4 の間の foreach ループで欠落している構文はありますか?

HTML
<!DOCTYPE html>

<html>
<head>
<title>Sandwich Order</title>
</head>

<body>
<form name="sandwichform" method="post" action="sandwichmaker.php">
Size
<select name="size">
    <option value="small">Small</option>
    <option value="medium">Medium</option>
    <option value="large">Large</option>
</select><br/>
Meat Type
<select name="meattype">
    <option value="ham">Ham</option>
    <option value="turkey">Turkey</option>
    <option value="beef">Roast Beef</option>
    <option value="salami">Salami</option>
</select><br/>
Bread Type
<select name="breadtype">
    <option value="white">White</option>
    <option value="wheat">Wheat</option>
</select><br/>
Condiments<br/>
<b>Extras:</b><br/>
Tomato<input type="checkbox" name="extras[]" value="tomato"><br>
Lettuce<input type="checkbox" name="extras[]" value="lettuce"><br>
<input type="submit" name="submit" value="Submit"/>
</form>

</body>
</html>

PHP

<?php

$breadtype=$_POST['breadtype'];
$meattype=$_POST['meattype'];
$size=$_POST['size'];
$extras=$_POST['extras'];

if ($breadtype == "white")
{
    $breadimage="images/whitebread.jpg";
}
elseif ($breadtype == "wheat")
{
    $breadimage="images/wheatbread.jpg";
}

$output1="<img src=\"$breadimage\" />";

switch ($size) {
case "small":
    $slices=2;
    break;
case "medium":
    $slices=4;
    break;
case "large":
    $slices=6;
    break;
}

$output2=$slices ." slices of";

switch ($meattype) {
case "ham":
    $meatimage="images/ham.jpg";
    break;
case "turkey":
    $meatimage="images/turkey.jpg";
    break;
case "beef":
    $meatimage="images/turkey.jpg";
    break;
case "salami":
    $meatimage="images/salami.jpg";
    break;
}

$output3="<img src=\"$meatimage\" />";

foreach ($extras as $extra)
{
    $ei="images/" .$extra .".jpg";

    $extrasimage = "<br/><img src=\"$ei\"/>";
}

$output4="with " .$extrasimage;

echo $output1;
echo "<br>";
echo $output2;
echo "<br>";
echo $output3;
echo "<br>";
echo $output4;
?>
4

2 に答える 2