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

PHP无法从0到1返回错误的单选按钮值 添加主题,php,Php,主题名称: 职位: 可见: 不 对 每当我回显单选按钮时,我总是得到值。当我将其传递到post变量时,我没有得到No的值,而是一直得到YES的值。我的信息在我的数据库中可见。我不知道我在这里做错了什么。任何人都知道我应该做什么吗?我想你误解了是什么数字。它只是检查值是否为数字0和1都是数字 您应该检查值本身,例如 $visible=($\u POST['visible']==1?真:假) 或者可能 $visible=(bool)$\u POST['visible'] 如果需要字符串,请尝试

主题名称:

职位:

可见: 不 对


每当我回显单选按钮时,我总是得到值。当我将其传递到post变量时,我没有得到No的值,而是一直得到YES的值。我的信息在我的数据库中可见。我不知道我在这里做错了什么。任何人都知道我应该做什么吗?

我想你误解了
是什么数字。它只是检查值是否为数字<代码>0和
1都是数字

您应该检查值本身,例如

$visible=($\u POST['visible']==1?真:假)

或者可能

$visible=(bool)$\u POST['visible']

如果需要字符串,请尝试(在上面的步骤之后)


echo$可见?“可见':'不可见'

我想你误解了
是什么数字。它只是检查值是否为数字<代码>0和
1都是数字

您应该检查值本身,例如

$visible=($\u POST['visible']==1?真:假)

或者可能

$visible=(bool)$\u POST['visible']

如果需要字符串,请尝试(在上面的步骤之后)


echo$可见?“可见':'不可见'

因为您正在打印
的结果是数值()。仅为
0/1

试试这个

<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;

?>
或者干脆

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


echo $visible;

您好,这是因为您正在打印
的结果为_numeric()。仅为
0/1

试试这个

<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;

?>
或者干脆

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


echo $visible;

因此,您的问题是回显$\u POST[“visible”]?尝试使用if(!isset($\u POST['visible'])$visible=intval($\u POST['visible']);因此,您的问题是回显$\u POST[“visible”]?尝试使用if(!isset($\u POST['visible'])$visible=intval($\u POST['visible']);这将不起作用,因为您正在比较字符串和int@LucaJung
=
将自动在两者之间转换。如果我使用
==
,那么它确实不起作用。请阅读此内容,因为您正在比较字符串和int@LucaJung
=
将自动在两者之间转换。如果我使用
==
,那么它确实不起作用。请阅读