Возникли проблемы при публикации информации из формы html в сценарий php. (Неопределенный индекс) - PullRequest
0 голосов
/ 03 февраля 2020

Я работаю над приложением для PHP класса, где мы должны создать приложение для заказа пиццы онлайн. Я застрял в форме html, которая не публикуется в сценарии, и я не могу заставить ее работать. Я получаю следующую ошибку и не знаю, как ее исправить.

Я работаю над приложением для класса PHP, где нам нужно создать приложение для заказа пиццы онлайн. Я застрял в форме html, которая не публикуется в сценарии, и я не могу заставить ее работать. Я получаю следующую ошибку и не знаю, как ее исправить. Неопределенная ошибка индекса

HTML индекс

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="style.css">
  <title>HTech Pizza Online Order</title>
</head>

<body>
  <div class="container">
    <form action="receipt.php" method="POST">
      <h2>HTech Pizzeria Online Order</h2>
      <fieldset>
          <legend><b>Customer Information</b></legend>
          Name: <input type="text" require id="customer" name="customer"
          placeholder="Enter Your Name..."><br>
          Phone Number: <input type="text" require id="phoneNumber" name="phoneNumber"
          placeholder="Enter Your Phone Number..."><br>
          Address: <input type="text" require id="address" name="address"
          placeholder="Enter Your Address..."><br>
      </fieldset>
    </form>
  </div> 
  <form action="receipt.php" method="POST">
    <fieldset>
      <legend><b>Order Customization</b></legend>
      <div class="checkbox">
        <b>Size : </b><br><br>

        <input id="radio3" type="radio" name="size" value="Large"><label for="radio3"><span><span></span></span>Large: $10.00</label> <br>

        <input id="radio2" type="radio" name="size" value="Medium"><label for="radio2"><span><span></span></span>Medium: $8.00</label> <br>

        <input id="radio1" type="radio" name="size" value="Small" checked="checked"><label for="radio1"><span><span></span></span>Personal: $6.00</label> 
        <br>
        <br>

        <b>Crust : </b><br><br>

        <input id="radio4" type="radio" name="crust" value="traditional" checked="checked"><label for="radio4"><span><span></span></span>Traditional: $2.00</label><br>

        <input id="radio5" type="radio" name="crust" value="welldone"><label for="radio5"><span><span></span></span>Well Done: $2.00</label><br>

        <input id="radio6" type="radio" name="crust" value="thin"><label for="radio6"><span><span></span></span>Thin: $2.00</label><br><br>
        <hr>
      </div>
      <div class="checkbox"><b>Toppings:</b><br><br>
        <div>  
          <input id="toppingBox1" type="checkbox" name="toppings[]" value="Pepperoni"><label for="toppingBox1"><span></span>Pepperoni</label> 
        </div>
        <div> 
          <input id="toppingBox2" type="checkbox" name="toppings[]" value="Bacon"><label for="toppingBox2"><span></span>Bacon</label>
        </div>

        <div>
          <input id="toppingBox3" type="checkbox" name="toppings[]" value="Chicken"><label for="toppingBox3"><span></span>Chicken</label>
        </div>

        <div>
          <input id="toppingBox4" type="checkbox" name="toppings[]" value="Sausage"><label for="toppingBox4"><span></span>Sausage</label>
        </div>

        <div>
          <input id="toppingBox5" type="checkbox" name="toppings[]" value="Ham"><label for="toppingBox5"><span></span>Ham</label> 
        </div>

        <div>
          <input id="toppingBox6" type="checkbox" name="toppings[]" value="BlackOlives"><label for="toppingBox6"><span></span>Black Olives</label> 
        </div> 

        <div>
          <input id="toppingBox7" type="checkbox" name="toppings[]" value="Parmesan"><label for="toppingBox7"><span></span>Parmesan</label>
        </div>

        <div>
          <input id="toppingBox8" type="checkbox" name="toppings[]" value="Pineapple"><label for="toppingBox8"><span></span>Pineapple</label>
        </div>
      </div>
      <hr>

      <div class="checkbox"><b>Student Discount: 
        </b><br><br>

        <input id="radio7" type="radio" name="studentBol" value="student"><label for="radio7"><span><span></span></span> Student</label> <br>

        <input id="radio8" type="radio"   name="studentBol" value="nonStudent"><label   for="radio8"><span><span></span></span>Non - Student</label><br>
        <br><hr><br>

        <b>Delivery or Pickup:</b> <br><br>

        <input id="radio9" type="radio" name="modePickup" value="Delivery"><label for="radio9"><span><span></span>
        </span>Delivery</label><br>

        <input id="radio0" type="radio" name="modePickup" value="Pickup"><label for="radio0"><span><span></span></span>Store Pickup</label><br>
        <br>


        <b>Boxes Of Pizza:</b><br><br>
        <div class="custom-select">
          <label>
            <select name="noOfPizza">
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
              <option value="5">5</option>
            </select>
          </label>
        </div>
      </div>
      <br>
      <br>

      Additional Instructions:<br><br>
      <label>
        <textarea name="addInstructions" cols="60" rows="10"></textarea>
      </label>
      <br>
      <br>

      <input class="btn btn1" type="submit" name="order" value="Order Now">

    </fieldset>
    <br>
  </form>
</body>
</html>

PHP Скрипт

    <?php
if (isset($_POST['order'])) {

  // Check for pizza size 

  switch ($_POST['size']) {

    case "Small":
      $pizzaSizePrice = 6.00;
      break;

    case "Medium":
      $pizzaSizePrice = 8.00;
      break;

    case "Large":
      $pizzaSizePrice = 10.00;
      break;
  }

  // Checking Student Qualification

  if ($_POST['studentBol'] == "student") {
    $studentBol = true;
  } else {
    $studentBol = false;
  }

  // Toppings

  $toppingArray = $_POST['toppings'];

  if (count($toppingArray) == 1) {
    $toppingAmount = 0.00;
  } else {

    // First topping free, added toppings an extra $1

    $toppingAmount = count($toppingArray) - 1;
  }

  // Pickup

  if ($_POST['modePickup'] == "Delivery") {
    $modePickup = 5.00;
  } else {
    $modePickup = 0.00;
  }

  $crustType = 2.00;

  $numberOfPizza = $_POST['noOfPizza'];
  $instructions = $_POST['addInstructions'];

  // Calculating Amount

  $netAmount = $crustType + $pizzaSizePrice + $toppingAmount;

  $netAmount = $netAmount * $numberOfPizza;

  // Adding Delivery Fee

  $netAmount = $netAmount + $modePickup;

  if ($studentBol) {
    $studentDiscount = $netAmount * 10 / 100;

    // Applying the student discount 

    $netAmount = $netAmount - $studentDiscount;

    $studentDiscount = number_format($studentDiscount, 2, '.', '');
  }

  // adding tax

  $salesTax = $netAmount * 10 / 100;
  $salesTax = number_format($salesTax, 2, '.', '');

  $total = $salesTax + $netAmount;
  $total = number_format($total, 2, '.', '');
}
?>

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="style.css">
  <title>Order Confirmation</title>
</head>

<body>
  <h2>Order Confirmation</h2>

  <hr>

  <h3>Customer Information:</h3>

  <h3>First Name:</h3><?php echo $_POST['customer']; ?>
  <h3>Phone Number:</h3><?php echo $_POST['phoneNumber']; ?>
  <h3>Address:</h3><?php echo $_POST['address']; ?>

  <hr>

  <h3>Size: </h3><?php echo $_POST['size'] . " $" . $pizzaSizePrice; ?>

  <h3>Crust Type: </h3><?php echo $_POST['crust'] . " $2"; ?>

  <h3>Toppings: </h3>
  <?php
  if (count($toppingArray) == 1) {

    foreach ($toppingArray as $topping) {
      echo $topping . " Free<br>";
    }
  } else {
    foreach ($toppingArray as $topping) {
      // First topping free

      if ($topping == "Peperroni") {
        echo $topping . " Free<br>";
      } else {
        echo $topping . " $1<br>";
      }
    }
  }
  ?>


  <h3>Pizza's Ordered: </h3><?php echo $numberOfPizza; ?>

  <h3>Additional Instructions:</h3> <?php echo $_POST['addInstructions']; ?>

  <br>
  <hr>

  <h3>Delivery or Pickup: </h3><?php echo $_POST['modePickup'] . " $" . $modePickup; ?>

  <!-- Check Student Discount -->
  <?php
  if ($studentBol) {
    echo "<br><br>Student Discount: $" . $studentDiscount;
  }
  ?>

  <h3>Sales Tax:</h3> $<?php echo $salesTax; ?>

  <hr>

  <h3>Total Due on Delivery: </h3> $<?php echo $total; ?>

</body>

</html>

1 Ответ

0 голосов
/ 03 февраля 2020

Это потому, что у вас есть две формы в вашем HTML.

Обратитесь к этой части вашего кода:

...
    <form action="receipt.php" method="POST">
      <h2>HTech Pizzeria Online Order</h2>
      <fieldset>
          <legend><b>Customer Information</b></legend>
          Name: <input type="text" require id="customer" name="customer"
          placeholder="Enter Your Name..."><br>
          Phone Number: <input type="text" require id="phoneNumber" name="phoneNumber"
          placeholder="Enter Your Phone Number..."><br>
          Address: <input type="text" require id="address" name="address"
          placeholder="Enter Your Address..."><br>
      </fieldset>
  </div> 
  <form action="receipt.php" method="POST">
...

Вы отправляете только вторую из двух форм и информация о клиенте находится в первой форме. Попробуйте объединить свои поля в одну форму, и вам будет хорошо: go.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...