错误如下:我正在尝试查看用户从复选框中选择的内容。
注意:未定义的变量:第42行的/Applications/XAMPP/xamppfiles/htdocs/ProjectOne/index.php中的ch1 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 :(得分:0)
您的代码中存在多处不一致。
注意:未定义的变量:第42行ch1上的/Applications/XAMPP/xamppfiles/htdocs/ProjectOne/index.php中的ch1
读取此内容,它会显示 Not 错误的NOTICE,即变量ch1($ch1
)未定义。所以没有设置为$ch1
的值。
因此,您需要做的是在脚本到达第42行之前为$ch1
设置一个值。
你的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;?> />
我希望这有助于澄清您的问题和方法。 : - )