数组中的PhP单选按钮

时间:2014-05-19 00:15:01

标签: php arrays foreach radio-button

我有一个表单,您可以在其中选择一个单选按钮,它应该将选择的内容传输到下一页。我的问题是,无论你选择哪个单选按钮,它总是传输与上一个单选按钮相关的值,而不是你选择的那个。

因此,如果我选择环游世界,那么它带有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()语句,但它没有用。它完全删除了值变量....

$ title = array(“环游世界”=&gt;“10”,“海岸到海岸”=&gt;“7”,“大城市”=&gt;“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;
}

2 个答案:

答案 0 :(得分:0)

您需要更改变量的名称$s&amp; foreach循环中的$s_value。 foreach循环设置这些变量,然后如果GET值中的任何一个为空,则在foreach循环之外访问它们,这样就没有GET值来替换变量的内容。因此,它始终使用5作为值,因为这是您设置的最后一个$s_value

总之,改变$s&amp; foreach循环中的$s_value类似于$key&amp; $value将分别修复数组值的问题。或者,您可以在foreach循环之后但在if语句之前取消设置它们。

答案 1 :(得分:0)

在您当前的代码中,您恰好在循环中切换了值。 10, 7, 5位于元素内部,而名称Around The world... etc位于键内。你只需要切换它们。考虑这个例子:

<?php
$title = array("Around the World"=>"10","Coast to Coast"=>"7","The Big City"=>"5");

if(isset($_GET['submit'], $_GET['sub'])) {
    $sub = $_GET['sub'];
    $name = array_search($sub, $title);
    echo '<script>alert("You selected '.$name. ' => '.$sub.'");</script>';
}

?>

<form method="GET" action="index.php">
    <?php foreach($title as $key => $value): ?>
        <input type="radio" name="sub" value="<?php echo $value; ?>" /> <?php echo $key; ?> <br/>
    <?php endforeach; ?>
    <br/>
    <input type="submit" name="submit" value="Submit" />
</form>