2013-07-30 36 views
1

我正在爲我的網站構建計算器,它們是表面面積類型的計算器,我需要一個公制和一個公制。我真的不想讓2個計算器在我的頁面上佔用不動產。相反,我想在表單的頂部創建一個單選按鈕,讓用戶單擊公制或我們來生成正確的代碼。我該如何去做這件事?我只是開始在PHP中獲得我的手,所以如果這個問題有一個簡單的解決方案,我很抱歉。如何告訴我的php腳本在另一個方程上運行一組方程

這裏是我的代碼:

<?php 
if (isset($_POST['dia'])) $dia = $_POST['dia']; 
if (isset($_POST['wt'])) $wt = $_POST['wt']; 
if (isset($_POST['L'])) $L = $_POST['L']; 
if (isset($_POST['num'])) $num = $_POST['num']; 
if (isset($_POST['waste'])) $waste = $_POST['waste']; 
$answer1 = 3.14 * ($dia/100) * $L * $num ; 
$answer2 = 3.14 * (($dia + ($wt * 2))/100) * $L * $num; 
$answer = ($answer1 + $answer2) * $waste/200; 

echo <<<_END 
<form method='post' action='http://www.launchrun.com/consealtest/ConBlockMIC-circ- metric.php'> 
<table border='0' width='500px' cellpadding='3' cellspacing='1' class="table"> 
<tr class="calcheading"><td colspan="2"><strong>ConBlock MIC Circular Surface Area</strong></td></tr> 
<tr class="calcrow"><td>Diameter (cm):</td><td align="center"><input type='text' name='dia' value="$dia"/></td></tr> 
<tr class="calcrow2"><td>Wall Thickness (cm):</td><td align="center"><input type='text' name='wt' value="$wt"/></td></tr> 
<tr class="calcrow"><td>Section Length (meters):</td><td align="center"><input type='text' name='L' value="$L"/></td></tr> 
<tr class="calcrow"><td>Number of Sections:</td><td align="center"><input type='text' name='num' value="$num"/></td></tr> 
<tr class="calcrow"><td>Waste Variance (%):</td><td align="center"><select name='waste' value="$waste"/> 
<option value="1.05" >0%</option> 

    <option value="1.05" >5%</option> 

    <option value="1.1" >10%</option> 

    <option value="1.2" >20%</option> 

    <option value="1.25" >25%</option> 

    </select></td></tr> 
<tr class="submit"><td colspan="2"><input type='submit' value='Calculate'/></td></tr> 
_END; 
?> 

<tr class="calcrow"> 
<td><i>Interior Coating (sq ft):</td> 
<td align="center"><input type="text" value="<?php echo round($answer1, 2)?>"></td></i> 
</tr> 
<tr class="calcrow"> 
<td><i>Exteror Coating (sq ft):</td> 
<td align="center"><input type="text" value="<?php echo round($answer2, 2)?>"></td></i> 
</tr> 
<tr class="calcrow"> 
<td><i>Total Gallons of ConBlock MIC needed:</td> 
<td align="center"><input type="text" value="<?php echo round($answer, 2)?>"></td></i> 
</tr> 
</table> 
</form> 

正如你可以在上面看到我有一個特定的公式每個答案,對我們來說,公式將只是用#替換#100 12.誰能幫助我還是指向正確的方向?非常感謝。

+2

難道你不只是在所有的計算度量,然後用一個簡單的'if'語句將其乘以轉換因子,如果他們希望在US模式下使用它? –

+0

你可以從這裏得到轉換系數:http://www.metric-conversions.org/ –

回答

0

一旦您添加了單選按鈕或下拉列表,或者您選擇作爲單位的選擇器,它的值將與表格的其餘部分一起發佈。然後你可以捕捉它的價值並用它來決定分母應該是什麼。

例如:

<label><input type="radio" name="units" value="US" checked="checked" />US</label> 
<label><input type="radio" name="units" value="Metric" />Metric</label> 

然後你可以調整你的PHP代碼:

if (isset($_POST['units'])) $units = $_POST['units']; 
... 
$denom = ($units == "US" ? 12 : 100); // if $units equals "US", use 12, else 100 
$answer1 = 3.14 * ($dia/$denom) * $L * $num ; 
$answer2 = 3.14 * (($dia + ($wt * 2))/$denom) * $L * $num; 
... 

另外一個建議是不是硬編碼的pi值。 PHP提供的功能pi()返回的pi3.14,這更接近,這將提高你的計算(注意,您也可以使用常量M_PI)精度:

$answer1 = pi() * ($dia/$denom) * $L * $num ; 
$answer2 = pi() * (($dia + ($wt * 2))/$denom) * $L * $num; 
+0

哇感謝您的快速回答!這是一個巨大的幫助,並感謝關於pi的額外提示。對此,我真的非常感激。 – GrayGhost23

+0

不客氣!如果答案爲您提供了您所尋找的解決方案,請不要忘記通過點擊旁邊的綠色複選標記來接受它。 –

+0

這是另一個輕微的snafu,也許你可以幫助我。我將如何去改變()中的縮寫。例如,在上面的表格中,Diameter需要是cm或in。 – GrayGhost23

相關問題