我必须根据用户的输入和选择字段中的选择在php中做一个简单的计算器,如下所示:
<?php
$a = $_GET['a'];
$b = $_GET['b'];
$array = array( "option1" => 0.1,
"option2" => 0.15,
"option3" => 0.3,
"option4" => 3,
"option5" => 3,
"option6" => 16,
"option7" => 16,
"option8" => 16
);
echo "<form action='calc.php' method='get'>";
echo "<input type='text' name='a' value='".$a."'> of ";
echo "<select name='b'>";
foreach ($array as $k => $v) {
echo "<option value='".$v."'>".$k."</option>";
}
echo "</select> ";
echo "<input type='submit' value='='> ";
$total_volume = $a * $b;
echo $total_volume;
echo "</form>";
?>
好吧,现在一切正常,但想法是在用户提交表单后,页面重新加载输入字段中的已发送金额和用户实际选择的选定选项...
首先很简单:我只是将value="a"
放在我的输入字段中,但我不确定如何在<select>
字段中选择选项???
我从这开始:
foreach ($array as $k => $v) {
echo "<option value='".$v."'";
if ($b == $v) {
echo " selected ";
}
echo ">".$k."</option>";
}
......但这显然不能按预期工作......请帮我解决这个问题:)
谢谢!
答案 0 :(得分:2)
您需要回复'selected="selected"'
之类的内容。其余的代码对我来说似乎很好。
第二个想法由于多个选项返回相同的值,因此存在结构上的错误,因此在提交表单后无法选择正确的值。
您需要在循环中的select中发送$k
值作为计算,您只需使用$array[$b]
代替$b
。
<?php
$a = $_GET['a'];
$b = $_GET['b'];
$array = array( "option1" => 0.1,
"option2" => 0.15,
"option3" => 0.3,
"option4" => 3,
"option5" => 3,
"option6" => 16,
"option7" => 16,
"option8" => 16
);
echo "<form action='calc.php' method='get'>";
echo "<input type='text' name='a' value='".$a."'> of ";
echo "<select name='b'>";
foreach ($array as $k => $v) {
echo "<option value='".$k."'";
if ($b == $k) {
echo ' selected="selected"';
}
echo ">".$k."</option>"; // or $v if you want to show the number
}
echo "</select> ";
echo "<input type='submit' value='='> ";
$total_volume = $a * $array[$b];
echo $total_volume;
echo "</form>";
?>
答案 1 :(得分:2)
试试这个:
foreach ($array as $k => $v) {
$selected= ($b == $v) ? 'selected="selected"' : '';
echo "<option value='$v' $selected>$k</option>\n";
}
答案 2 :(得分:-1)
你必须在$ _GET中捕获数据。 试试
foreach ($_GET as $k => $v) {
echo "<option value='".$v."'";
if ($b == $v) {
echo " selected ";
}
echo ">".$k."</option>";
}
编辑:
在我的电脑上,它在这里工作是GET的转储
<form action='' method='get'>
<input type='text' name='a' value='121'> of <select name='b'>
<option value='0.1'>option1</option>
<option value='0.15'>option2</option>
<option value='0.3'>option3</option>
<option value='3'>option4</option>
<option value='3'>option5</option><option value='16'>option6</option><option value='16'>option7</option><option value='16'>option8</option></select> <input type='submit' value='='> 363
</form>
The Url
http://localhost/test.php?a=121&b=3
参数
a 121 b 3