php
  • html
  • forms
  • checkbox
  • 2015-10-09 134 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;?> /> 
    

    我希望這有助於澄清你的問題,你的方法。 :-)

    相關問題