2016-04-21 23 views
1

我是PHP的初學者,我認爲通過啓動簡單的項目可以很好地學習它。我選擇了一個簡單的單位轉換器。php和html單位轉換器/選擇選項值

我不想問一個代碼,我只是想問一些幫助,弄清楚要使用什麼方法或下一步應考慮哪些步驟。或者如果某人有類似的鏈接,那將會很棒,我自己也找不到任何東西。

想法是這樣的:用戶將輸入值和原始單位,然後我想以幾個不同的單位打印值。這是我到目前爲止有:

HTML

<div id="converter"> 
    <h2>Unit converter</h2> 
    Convert from: 
    <form method="post" action="" class="inline"> 

    <select name="unit"> 
     <option value="km">kilometers</option> 
     <option value="m">meters</option> 
     <option value="dm">decimeters</option> 
     <option value="cm">centimeters</option> 
     <option value="mm">milimeters</option> 
    </select> 

    <input type="text" name="value" placeholder="input value here" autocomplete="off" required>  
    <input type="submit" value="convert"/> 

    </form> 

<?php 
    $unit = isset($_POST['unit']) ? $_POST['unit'] : false; 
    $value = isset($_POST['value']) ? $_POST['value'] : false; 

    /* the above two lines are copied from a solution for something similar 
that I found online. I know that they're not doing what I would like to do. 
I want $unit to hold the unit the user chose, and $value to hold the value the 
user put in. */ 

?> 

</div> 

所以最好我想能夠輸入例如20,選擇「米」,單擊轉換,然後打印「0.02公里,200釐米,2000釐米,20000毫米「。

目前我被困在這個問題上:如何檢查選擇了哪個「原始單元」?換句話說,我如何檢查用戶是選擇公里還是儀表或其他單位,並相應地編輯輸出?

並且:如何打印輸出?

我知道我應該以某種方式使用$ _POST,但我不知道如何。

再次,我不是要求代碼(雖然有些會很好;)),但是對於指針。我讀了一本關於PHP的書,但對此沒有多大幫助。

預先感謝您。對不起,如果我犯了錯誤,英語不是我的第一語言。

回答

0

來自死硬PHP編碼器用php做這些事情已經成爲傳統和過時,因爲當用戶點擊提交時整個頁面必須重新加載。 使用AngularJS應用程序可以更輕鬆地完成上述操作。這就是網站正在進行的SPA(單頁面應用程序),頁面不必重新加載,並且結果是即時的。

在嘗試學習AngularJS之前,您需要良好的JavaScript知識和MVC(模型,視圖控制器)編程概念。但這是值得的!

我會建議w3schools爲基本的速成班。但是使用谷歌搜索總是會產生很多有價值的資源。

但回到回答你的問題:

您的網頁名稱需要的index.php,讓您的形式可以張貼通過action屬性的index.php:

<form method="post" action="index.php" class="inline"> 

然後你就可以做到以下幾點,看看有什麼被張貼到網頁,這將打印的所有變量尼斯可讀顯示屏(與易註釋掉):

echo "<pre>";print_r($_REQUEST);echo "</pre>"; 

然後你會看到$ _REQUEST ['U尼特']應該給你你需要的變種,然後使用switch語句爲每個選擇做個別計算

+0

非常感謝!正是我在找什麼,謝謝!是的,我可以看到如何使用PHP來做到這一點已經過時了,但它只是爲了我的學習目的:)我一定會考慮AngularJS,謝謝你的提示!再次,爲您的幫助! – chili

0

你在談論類似的東西嗎?:

<div id="converter"> 
<h2>Unit converter</h2> 
Convert from: 
<form method="post" action="" class="inline"> 

<select name="unit"> 
    <option value="km">kilometers</option> 
    <option value="m">meters</option> 
    <option value="dm">decimeters</option> 
    <option value="cm">centimeters</option> 
    <option value="mm">milimeters</option> 
</select> 

<input type="text" name="value" placeholder="input value here" autocomplete="off" required>  
<input type="submit" value="convert"/> 

</form> 

<?php 

$unit = isset($_POST['unit']) ? $_POST['unit'] : false; 
$value = isset($_POST['value']) ? $_POST['value'] : false; 

$metrics = ["mm" => 1, "cm"=> 10, "dm" => 100, "m" => 1000, "km" => 1000000]; 
$template_value = $value*$metrics[$unit]; 
$values_for_print = []; 
foreach($metrics as $key=>$value){ 
    echo $key.": ".$template_value/$value."; "; 
} 
?> 
</div>