PHP无法从0到1返回错误的单选按钮值

时间:2016-07-31 14:24:59

标签: php

<td id="page">
                <h2>Add Subject</h2>
                <form action="create_subject.php" method="post">
                    <p>Subject name: <input type="text" name="menu_name" value="" id="menu-name"></p>

                    <p>Position: 
                        <select name="position">

                        <?php 
                        $subject_set = get_all_subject();
                        $subject_count = mysql_num_rows($subject_set);
                        for ($i=1; $i <= $subject_count+1 ; $i++) { 
                            echo "<option value=\"$i\">$i</option>";
                        }

                        ?>

                        </select>
                    </p>

                    <p>Visible: 
                    <input  type="radio" name="visible" value="0" >No 
                     <input type="radio" name="visible" value="1" >Yes
                    </p>

                    <input  type="submit" name="submit" value="Add subject" >
                </form>



<?php 

$menu_name = mysql_slash_checker($_POST['menu_name']);
$position = mysql_slash_checker($_POST['position']);
$visible = is_numeric($_POST['visible']);


echo $visible;

?>

每当我回显单选按钮时,我都会不断获得价值。当我把它传递给post变量时,我不是得到No的值,而是继续得到YES的值。我的信息在我的数据库中可见。我不知道我在这里做错了什么。请有人知道我应该做什么吗?

2 个答案:

答案 0 :(得分:0)

我认为你误解了is_numeric的作用。它只是检查值是否为数字。 01都是数字。

您应该检查值本身,例如

$visible = ($_POST['visible'] == 1 ? true : false);

或可能

$visible = (bool) $_POST['visible'];

如果你想要一个字符串,请尝试(在上面之后)

echo $visible ? 'visible' : 'not visible';

答案 1 :(得分:0)

嗨,因为您正在打印is_numeric();的结果。这只是0/1

试试这个

$visible = is_numeric($_POST['visible']) ? $_POST['visible'] : '';


echo $visible;

或只是

echo $_POST['visible'];