我正在创建一个音量转换器。它允许用户输入一个值并选择要转换的单位和将转换成的单位。它使用<select>
标记进行用户输入选择。
<select>
看起来像这样:
<select name="from">
<option value=0>--select--</option>
<option value=1>cm3</option>
<option value=2>m3</option>
<option value=3>Feet3</option>
<option value=4>Gallons(UK)</option>
<option value=5>Gallons(US)</option>
<option value=6>Inches3</option>
<option value=7>Litres</option>
<option value=8>Yards3</option>
<option value=9>Quart(UK)</option>
</select>
还有一个与此类似的名称&#34; to&#34;。
之后我在PHP中执行了以下操作:
$from=$_POST['from'];
$to=$_POST['to'];
function assign($from,$val)
{
switch ($from)
{
case 1:
$fromu="cm<sup>3</sup>";
$cm=1;
$me=0.000001;
$ft=0.000035315;
$gk=0.000219969;
$gs=0.000264172;
$in=0.061024;
$li=0.001;
$ya=0.000001308;
$qtk=0.000879877;
break;
case 2:
$fromu="m<sup>3</sup>";
$cm=1000000;
$me=1;
$ft=35.32;
$gk=220;
$gs=264;
$in=61024;
$li=1000;
$ya=1.308;
$qtk=879.877;
break;
还有7个案例基于html select&#34; from&#34;并且每个单位相对于所做的选择保持每个单位的转换值。 最后是:
echo "<br><br><table align=center>
<tr><td><h3> ",$val," ",$fromu," equivalent is </h3></td></tr>
<tr align=right><td><u> ",(double)($val*$cm),"</u> CentiMeter<sup>3</sup></td></tr>
<tr align=right><td><u> ",(double)($val*$me),"</u> Meter<sup>3</sup></td></tr>
<tr align=right><td><u> ",(double)($val*$ft),"</u> Feet<sup>3</sup></td></tr>
<tr align=right><td><u> ",(double)($val*$gk),"</u> Gallons(UK)</td></tr>
<tr align=right><td><u> ",(double)($val*$gs),"</u> Gallons(US)</td></tr>
<tr align=right><td><u> ",(double)($val*$in),"</u> Inches<sup>3</sup></td></tr>
<tr align=right><td><u> ",(double)($val*$li),"</u> Litres</td></tr>
<tr align=right><td><u> ",(double)($val*$ya),"</u> Yards<sup>3</sup></td></tr>
<tr align=right><td><u> ",(double)($val*$qtk),"</u> Quart(UK)</td></tr></table>";
}
assign($from,$val);
}
如何以可以保存所有转换值的方式对其进行优化(我可能在关联数组中思考)并且能够根据&#34;中的用户选择选择一个转换值。 34;选择。 (可能还有更好的方法来写这个。)