2016-01-13 21 views
0

我在項目中遇到了一個麻煩,那就是Order System只是一個簡單的問題..我的擔心是如何將我的輸入的值與我的表單進行比較我創建的數組,然後它會自動聲明我選擇的商品的價格,只有商品的名稱。這是我的代碼.. PLs幫助。陣列通過任何輸入類型的數據自動生成結果

歡迎來到簡單的CARENDERYA! 簡單的訂購系統正

<div class="container"> 
<!-- Menu --> 
    <table class="table table-striped table-hover table-bordered"> 
     <tr> 
      <thead> 
       <th>Menu</th> 
       <th>Price:</th> 
       <th>Drinks</th> 
       <th>Price:</th> 
      </thead> 
     </tr> 
     <tbody> 
      <tr> 
       <td style="color:red;">Fried Chicken</td> 
       <td>P 300.00</td> 
       <td style="color:red;">Coke</td> 
       <td>P 25.00</td> 
      </tr> 
      <tr> 
       <td style="color:red;">Adobong Baboy</td> 
       <td>P 400.00</td> 
       <td style="color:red;">Sprite</td> 
       <td>P 25.00</td> 
      </tr> 
      <tr> 
       <td style="color:red;">Spaghetti</td> 
       <td>P 500.00</td> 
       <td style="color:red;">Iced Tea</td> 
       <td>P 30.00</td> 
      </tr> 
      <tr> 
       <td style="color:red;">Barbeque</td> 
       <td>P 600.00</td> 
       <td style="color:red;">Pineapple Juice</td> 
       <td>P 25.00</td> 
      </tr> 
     </tbody> 
    </table>  


    <!-- end menu --> 



    <div class="col-lg-4 col-md-4 col-sm-4"> 
     <form class="form" method="post" action=""> 
      <div class="form-group"> 
       <label for="pick">Select your order (select one):</label> 
        <select class="form-control" name="pick" id="pick"> 
         <option value="None">None</option> 
         <option value="Sample1">Fried Chicken</option> 
         <option value="Sample2">Abobong Baboy</option> 
         <option value="Sample3">Spaghetti</option> 
         <option value="Sample4">Barbeque</option> 
        </select> 
      </div> 

      <div class="form-group"> 
       <label for="amount">Select your amount:</label> 
        <select class="form-control" id="amount" name="amount"> 
         <option value="None">None</option> 
         <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> 
      </div> 


    </div> 

    <div class="col-lg-4 col-md-4 col-sm-4"> 
     <div class="form-group"> 
      <label for="drinks">Select Drinks:</label> 
       <select id="drinks" name="drinks" class="form-control"> 
        <option>None</option> 
        <option value="Coke">Coke</option> 
        <option>Sprite</option> 
        <option>Iced Tea</option> 
        <option>Pineapple Juice</option> 
       </select> 
     </div> 
     <div class="form-group"> 
      <label for="drinks-amount">Select Drinks:</label> 
       <select id="drinks-amount" name="drinks-amount" class="form-control"> 
        <option>None</option> 
        <option>1</option> 
        <option>2</option> 
        <option>3</option> 
        <option>4</option> 
       </select> 
     </div> 
     <button class="btn btn-danger" name="submit" type="submit">PAY</button> 


     </form> 
    </div> 

    <div class="col-lg-4 col-md-4 col-sm-4"> 
     <h3 class="white">Total:</h3> 

     <?php 

     if (isset($_POST['submit'])) 
     { 
      $pick = $_POST['pick']; 
      $amount = $_POST['amount']; 
      $drinks = $_POST['drinks']; 
      $drinks_amount = $_POST['drinks-amount']; 

      $menu = array('Sample1' => '300.00', 'Sample2' => '400.00', 'Sample3' => '500.00', 'Sample4' => '600.00'); 
      $beverage = array('Coke' => '25.00', 'Sprite' => '25.00'); 

      $order1 = ''; 
      $order2 = ''; 

      //Condition 1 
      if($pick == 'Sample1' || $drinks == 'Coke') 
      { 
       $order1 = $menu['Sample1'] * $amount; 
       $order2 = $beverage['Coke'] * $drinks_amount; 


       $total = $order1 + $order2; 

       echo '<h2 class="white">','P '.$total.' . 00','</h2>'; 
       echo '<button class="btn btn-warning" name="view" type="reset">Show Order</button>'; 
       return $total; 

      } 


      //Condition 2 
      elseif($pick == 'Sample2' || $drinks == 'Coke') 
      { 
       $order1 = $menu['Sample2'] * $amount; 
       $order2 = $beverage['Coke'] * $drinks_amount; 


       $total = $order1 + $order2; 

       echo '<h2 class="white">','P '.$total.' . 00','</h2>'; 
       echo '<button class="btn btn-warning" name="view" type="reset">Show Order</button>'; 
       return $total; 
      } 

      //Condition 3 
      elseif($pick == 'Sample3' || $drinks == 'Coke') 
      { 
       $order1 = $menu['Sample3'] * $amount; 
       $order2 = $beverage['Coke'] * $drinks_amount; 


       $total = $order1 + $order2; 

       echo '<h2 class="white">','P '.$total.' . 00','</h2>'; 
       echo '<button class="btn btn-warning" name="view" type="reset">Show Order</button>'; 
       return $total; 
      } 

      //Condition 4 
      elseif($pick == 'Sample4' || $drinks == 'Coke') 
      { 
       $order1 = $menu['Sample4'] * $amount; 
       $order2 = $beverage['Coke'] * $drinks_amount; 


       $total = $order1 + $order2; 

       echo '<h2 class="white">','P '.$total.' . 00','</h2>'; 
       echo '<button class="btn btn-warning" name="view" type="reset">Show Order</button>'; 
       return $total; 
      } 




      else 
      { 
       echo '<h2 class="white">P 0.00</h2>'; 
       echo '<h3 style="color:red;">Sorry You Dont have an Order..</h3>'; 
      } 




     } 

     ?> 
    </div> 

嗯,這是工作的傢伙,但我真的想縮短我與同Output.So傢伙請代碼幫助我。

+0

你的問題我不太清楚,但你可以使用'array_key_exists'。基本上,而不是所有這些條件,你可以有以下單一條件:'$ order1 = 0; $ order2 = 0; (array_key_exists($ pick,$ menu)&& array_key_exists($ drinks,$ beverage)){$ order1 = $ menu [$ pick] * $ amount; $ order2 = $ beverage [$ drinks] * $ drinks_amount;} $ total = $ order1 + $ order2;' –

回答

0

我試着修復你的代碼。我希望這正是你所需要的。

<?php 

     if (isset($_POST['submit'])) 
     { 
      $pick = $_POST['pick']; 
      $amount = $_POST['amount']; 
      $drinks = $_POST['drinks']; 
      $drinks_amount = $_POST['drinks-amount']; 

      $menu = array('Sample1' => '300.00', 'Sample2' => '400.00', 'Sample3' => '500.00', 'Sample4' => '600.00'); 
      $beverage = array('Coke' => '25.00', 'Sprite' => '25.00'); 

      //Try to do not mix Strings with numbers. 
      $order1 = 0; 
      $order2 = 0; 

      //First check if your variables are empty or not. 
      if(isset($pick) && trim($pick) != null){ 
       //if the variable pick has a value check if the key is a key of the array 
       if(array_key_exists($pick,$menu)){ 
        $order1 = $menu[pick] * $amount; 
       }else{ 
        echo "Select a correct menu"; 
       } 
      } 

      if(isset($drinks) && trim($drinks) != null){ 
       //if the variable $drinks has a value 
       if(array_key_exists($drinks,$beverage)){ 
        $order2 = $beverage[$drinks] * $drinks_amount; 
       }else{ 
        echo "Select a correct drink"; 
       } 
      } 


      $total = $order1 + $order2; 

      echo '<h2 class="white">','P '.$total.' . 00','</h2>'; 
      echo '<button class="btn btn-warning" name="view" type="reset">Show Order</button>'; 
      //if your code is in a function use return. If not you don't need it 
      return $total; 
    } 

?> 

你很明顯可以使用一個if語句。爲了使事情更容易,我分了兩個。

+0

感謝您的幫助。但是當我運行你給我的代碼...我的服務器檢測到這樣的錯誤。 致命錯誤:無法在函數調用的結果上使用isset()(您可以改爲使用「null!== func()」)在第126行的C:\ xampp \ htdocs \ website \ includes \ header.php中 我該如何解決這個問題? –

+0

好吧,試着以這種方式分離兩個條件:if(isset($ pick)&& trim($ pick)!= null){} – Alex95

+1

非常感謝您......它的工作原理。 –

0

還有一個更簡單的做到這一點的方法:

if (isset($_POST['submit'])) { 
     $pick = $_POST['pick']; 
     $amount = $_POST['amount']; 
     $drinks = $_POST['drinks']; 
     $drinks_amount = $_POST['drinks-amount']; 

     $menu = array('Fried Chicken' => '300.00', 
       'Abobong Baboy' => '400.00', 
       'Spaghetti' => '500.0', 
       'Coke' => '25.00', 
       'Sprite' => '25.00'); 

     if(array_key_exists($pick,$menu) { 
      $total = $menu[$pick] * $amount + (($drinks == 'Coke')? $menu[$drinks] * $drinks_amount : 0); 

      echo '<h2 class="white">','P '.$total.' . 00','</h2>'; 
      echo '<button class="btn btn-warning" name="view" type="reset">Show Order</button>'; 
      return $total; 

     } else { 
      echo '<h2 class="white">P 0.00</h2>'; 
      echo '<h3 style="color:red;">Sorry You Dont have an Order..</h3>'; 
     }