2015-10-09 3 views
0

Ошибка ниже: Я в значительной степени пытаюсь понять, что пользователь выбрал из флажков.PHP Отправить форму Ошибка

Примечание: Undefined переменной: CH1 в /Applications/XAMPP/xamppfiles/htdocs/ProjectOne/index.php на линии 42 ч1

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-код под html также на вашей странице? – 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

У вас есть несколько несоответствий в вашем коде.

Примечание: Undefined переменной: CH1 в /Applications/XAMPP/xamppfiles/htdocs/ProjectOne/index.php на линии 42 ч1

Читать это, говорит ВНИМАНИЕ, что не ошибка, что переменная 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;?> /> 

Надеюсь, это поможет прояснить ваши проблемы и ваш подход. :-)

Смежные вопросы