【发布时间】:2014-07-06 20:16:55
【问题描述】:
我有一个表单,您可以在其中选择一个单选按钮,它应该将选择的内容传输到下一页。我的问题是,无论您选择哪个单选按钮,它总是将与最后一个单选按钮关联的值传递给您,而不是您选择的那个。
所以如果我选择环游世界,它会携带 5 而不是 10
我需要使用 GET 方法。
这是我的代码:
$title = array("Around the World"=>"10","Coast to Coast"=>"7","The Big City"=>"5");
foreach($title as $sub=>$s_value) {
echo "$sub $$s_value";
echo '<input type="radio" name="sub" value="', $sub,'">';
echo "<br>";
}
if (empty($_GET["sub"])) {
} else {
$sub = sub_input($_GET["sub"]);
}
if (empty($_GET["s_value"])) {
} else {
$s_value = sub_input($_GET["s_value"]);
}
if (isset($title['sub'])){
$valid=false;
}
这是下一页的代码:
echo "<b>$sub</b><br />";
echo "Base Total: $ $s_value/mon x $month months <br />";
是的,我省略了很多东西,因为我的代码中的其他一切都很好。
我也尝试过这样做,添加了一个 unset() 语句,但它不起作用。它完全删除了 value 变量....
$title = array("环游世界"=>"10","Coast to Coast"=>"7","The Big City"=>"5");
foreach($title as $sub=>$s_value) {
echo "$sub $$s_value";
echo '<input type="radio" name="sub" value="', $sub,'">';
echo "<br>";
unset($s_value);
}
//我也试过把未设置的放在这里//
if (empty($_GET["sub"])) {
} else {
$sub = sub_input($_GET["sub"]);
}
if (empty($_GET["s_value"])) {
} else {
$s_value = sub_input($_GET["s_value"]);
}
if (isset($title['sub'])){
$valid=false;
}
【问题讨论】:
-
我是 PhP 的新手,但是在使用 foreach 循环时可以做到吗?
-
您在一组中的单选按钮应该都具有相同的
name但不同的value,问题在于您在foreach之外使用相同的变量,请参阅下面的答案。 -
Courtney 是正确的,我假设您有多个单选按钮组。
标签: php arrays foreach radio-button