php
  • html
  • forms
  • checkbox
  • 2015-10-09 135 views 0 likes 
    0

    错误如下:我很想看看用户从复选框中选择了什么。PHP提交表单错误

    说明:未定义变量:在/Applications/XAMPP/xamppfiles/htdocs/ProjectOne/index.php通道ch1上线路42 CH1

    HTML代码:

    <form action='submit.php' method="GET"> 
    
    <div id="self"> 
    <input type='text' name='Name' value='Name' /> 
        <br> 
    <input type='text' name='Cwid' value='CWID' /> 
        <br> 
    </div> 
    
    <div id='gender'> 
    <strong>Gender:</strong><input type="radio" name="sex" value="male"checked>Male 
    Or 
    <input type="radio" name="sex" value="female">Female 
    <br> 
    <div> 
    
    <div id='class'> 
    <strong>Class:</strong> <select name='class'> 
    <option value='Freshman'> Freshman </option> 
    <option value='Sophomore'> Sophomore </option> 
    <option value='Junior'> Junior </option> 
    <option value='Senior'> Senior </option> 
    </select> 
    </div> 
    <br> 
    <div id='pref'> 
    <strong>Student Preferences</strong> 
    <br> 
    <!-- line 42 --> 
    <input type="checkbox" name="ch1" value="ch133" /> <?PHP echo $ch1; ?> ch1 <br /> 
    <input type="checkbox" name="ch2" value="Laundry on Premise" /> Laundry on Premise<br /> 
    <input type="checkbox" name="ch3" value="Fully Equipped Kitchen" /> Fully Equipped Kichen<br /> 
    
    </div> 
    <div id='submit'><input type="submit" name='submit' value="Submit" /> </div> 
    
    </form> 
    

    PHP代码如下:

    <?php 
    $ch1 = 'unchecked'; 
    $ch2 = 'unchecked'; 
    $ch3 = 'unchecked'; 
    if(isset($_GET['submit'])) 
    { 
    $name = $_GET['Name']; 
    $cwid = $_GET['Cwid']; 
    $sex = $_GET['sex']; 
    $class = $_GET['class']; 
    $ch1 = $_GET['ch1']; 
    $ch2 = $_GET['ch2']; 
    $ch3 = $_GET['ch3']; 
        if (isset($ch1)) { 
        $ch1 = $_GET['ch1']; 
    
        if ($ch1 == 'ch1') { 
         $ch1 = 'checked'; 
        } 
    } 
    } 
    ?> 
    
    +0

    什么是'line 42 ch1'? –

    +1

    你的php代码是否也在你的页面中? – xdola

    +2

    可能的重复[参考 - 这个错误在PHP中意味着什么?](http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) – Brian

    回答

    1

    你在一个不变的变量上调用回声。当您提交表单时,$ ch1尚不存在。前行

    <?php $ch1 = 'unchecked'; ?> 
    

    :添加此

    <input type="checkbox" name="ch1" value="ch133" /> <?PHP echo $ch1; ?> ch1 <br /> 
    
    0

    你在你的代码的几个不一致。

    说明:未定义变量:在/Applications/XAMPP/xamppfiles/htdocs/ProjectOne/index.php通道ch1上线路42 CH1

    阅读本,它说的通知,这是不一个错误,变量ch1($ch1)未定义。所以没有设定值为$ch1

    所以,你需要做的是设置一个值$ch1脚本到达线路42之前什么

    你的HTML说:

    <input type="checkbox" name="ch1" value="ch133" /> 
    

    ,当您将数据提交到页面手段,您正在使用的系统的$_POST/$_GET/$_REQUEST将返回值为ch133变量ch1

    因为它是一个复选框,就可以得到要么这个值,或者什么都没有,所以在你的PHP代码永远不会是你想要的输出,因为:

    $ch1 = $_GET['ch1']; 
    
        if (isset($ch1)) { 
        //you can only reach this point if the value is already set, 
        //Below, so there's no point setting the value twice. 
        $ch1 = $_GET['ch1']; 
        if ($ch1 == 'ch1') { 
         //$ch1 can only be the value of $_GET['ch1'] and so it can 
         // never ever be 'ch1' as it's value, it can be NULL or ch133 
         //only. So this IF statement will never ever run. 
         $ch1 = 'checked'; 
        } 
    } 
    

    另外请注意,您的echo $ch1语句在外面HTML复选框,所以该复选框永远不会被标记为勾选。您需要调整您的代码是:

    <input type="checkbox" name="ch1" value="ch133" <?php print $ch1;?> /> 
    

    我希望这有助于澄清你的问题,你的方法。 :-)

    相关问题