2011-11-20 191 views
-2

你好,我正在尋找像機場的距離成本計算器,出租車公司將有例如:距離成本計算器

從X到XX將花費...

這裏就是我有發從這裏的其他人的幫助:http://pastebin.com/0pSF7VsA 但是我不能解決如何讓它工作,例如當用戶從表單中選擇數學時,請做數學運算。

這裏是迄今爲止我的表格:http://pastebin.com/sq14eYMQ

感謝

+1

您應該粘貼相關代碼的問題裏面,並着重說明你有問題,並描述正是問題(解析輸入,這樣做實際的數學計算等)。這將使我們能夠更好地解決您的問題。 – Bryan

+0

你應該把地點/價格放在一個數組中,這樣處理起來會容易得多。 –

回答

1

繼承人清理和後後計算的例子。希望能幫助到你。

<?php 
error_reporting(E_ALL); 

/* places array, multi dimensional could also be used but noticed prices are the same */ 
$data = array("Algeciras"=>10,"Almuñecar"=>20,"Alora"=>30,"Antequera"=>10,"Benahavis"=>15, 
"Benalmadena costa"=>20,"Benalmadena pueblo"=>25,"Calahonda"=>30,"Cartama"=>40, 
"Coin"=>12,"Estepona"=>15,"El Faro"=>20,"Frigiliana"=>16,"Fuengirola"=>30,"Gibraltar frontier - La Linea"=>12, 
"Granada"=>30,"La Cala de Mijas"=>10,"La Cala Golf Resort"=>20,"Malaga"=>5,"Manilva"=>12,"Marbella"=>20,"Mijas Costa"=>7, 
"Mijas Pueblo"=>20,"Nerja"=>10,"Puerto Banus"=>15,"Puerto de la Duquesa"=>10,"Rincon de la victoria"=>23, 
"Ronda"=>20,"San Pedro de Alcantara"=>10,"San Roque"=>20,"Sierra Nevada"=>12,"Sotogrande"=>19,"Tarifa"=>20, 
"Torre del Mar"=>30,"Torremolinos"=>10,"Torremuelle"=>14,"Torrenueva"=>18,"Torrox Costa"=>11); 


/* number of people array */ 
$car=array('1'=>0,'2'=>50,'3'=>70,'4'=>90,'5+'=>110); 


$now = date("H:i"); 
$cutoff = "18:56"; 

function rateOffset($now, $cutoff){ 
    if ($now < strtotime($cutoff)){ 
     // if less than 6:56pm add 20.00 20.00 euros to price 
     return 20.00; 
    } else { 
     // if more than 6:56pm add only 6 euros to price 
     return 6.00; 
    } 
} 

//This is a basic example of how to check if the form was posted 
if(isset($_POST['name']) && isset($_POST['to'])){ 

    if(isset($_POST['from']) && $_POST['from']=='Gibraltar'){ 
     /* places array to overwrite malaga prices */ 
     $data = array("Algeciras"=>10,"Almuñecar"=>20,"Alora"=>30,"Antequera"=>10,"Benahavis"=>15, 
     "Benalmadena costa"=>20,"Benalmadena pueblo"=>25,"Calahonda"=>30,"Cartama"=>40, 
     "Coin"=>12,"Estepona"=>15,"El Faro"=>20,"Frigiliana"=>16,"Fuengirola"=>30,"Gibraltar frontier - La Linea"=>12, 
     "Granada"=>30,"La Cala de Mijas"=>10,"La Cala Golf Resort"=>20,"Malaga"=>5,"Manilva"=>12,"Marbella"=>20,"Mijas Costa"=>7, 
     "Mijas Pueblo"=>20,"Nerja"=>10,"Puerto Banus"=>15,"Puerto de la Duquesa"=>10,"Rincon de la victoria"=>23, 
     "Ronda"=>20,"San Pedro de Alcantara"=>10,"San Roque"=>20,"Sierra Nevada"=>12,"Sotogrande"=>19,"Tarifa"=>20, 
     "Torre del Mar"=>30,"Torremolinos"=>10,"Torremuelle"=>14,"Torrenueva"=>18,"Torrox Costa"=>11); 
    } 

    $rateCalc = rateOffset($now, $cutoff); 

    echo $now." = $rateCalc<br />"; 
    echo "Price to {$_POST['to']} from {$_POST['from']}: ".number_format($data[$_POST['to']],2)."<br />"; 
    echo "Number of people price: ".number_format($car[$_POST['people']],2)."<br />"; 
    echo "Time rate calculator: ".$rateCalc."<br /><hr />"; 

    $total = number_format($data[$_POST['to']],2) + number_format($car[$_POST['people']],2) + $rateCalc." in euros<br /><br />"; 
    echo "Total: ".$total; 

}else{ 
    echo '<form method="POST" action=""> 
        <label>Name:</label> 
        <input type="text" value="name" name="name" /> 

        <label>From:</label> 
        <select name="from"> 
         <option selected="selected">Malaga</option> 
         <option>Gibraltar</option> 
        </select> 
        <div class="clr"></div> 

        <label>To:</label> 
        <select name="to"> 
      '; 
    foreach ($data as $place => $price){ 
     echo "<option>{$place}</option>\n"; 
    } 
    echo '</select> 
        <div class="clr"></div> 

        <label>Date:</label> 
        <input type="text" value="dd/mm/yyyy" id="date" name="date" /> 

        <label>Number of people:</label> 
        <select id="people" name="people"> 
         <option>1</option> 
         <option>2</option> 
         <option>3</option> 
         <option>4</option> 
         <option>5+</option> 
        </select> 
        <div class="clr"></div> 

        <div id="return"> 
         <label>Is this a return<br />journey?</label><div class="clr"></div> 
         <div id="radio-buttons"><input type="radio" name="return" value="Yes" class="radio" />Yes<br /> 
         <input type="radio" name="return" value="No" class="radio" />No</div> 
        </div> 
        <div class="clr"></div> 

        <input type="submit" name="submit" class="fauxButton" /> 
       </form>'; 
} 
?> 
+0

這是偉大的勞倫斯,但我如何給直布羅陀的每個地點不同的價格。 –

+0

@格拉姆巴恩斯,當我經歷它時,我注意到價格是一樣的:s。您可以在if語句中進行檢查,以查看選擇了哪個拾取點,然後從該選項中設置數據數組。 –

+0

對不起勞倫斯,但我知道很少的PHP,我把一些虛擬的數字,所以他們將完好無損都是不同的價值觀。 –