我是PHP新手,我正在学习一个学校项目。 我有一个包含不同类型字段的表单,当用户点击提交时,他们可能会收到各种错误消息,他们输入的字符太多,不够等等。
1)我的第一个问题是选择菜单。如果用户没有从中选择任何内容,我终于得到了错误消息。但是,当用户点击“提交”时,页面会忘记他选择的内容。我似乎无法弄明白。
<label>Platform:</label>
<select name="platformi" id="platformi">
<option value="-1" <?php if (isset($platformi) && $platformi=="Choose") echo 'selected="selected"';?>>Choose</option>
<option value="1" <?php if (isset($platformi) && $platformi=="PC") echo 'selected="selected"';?>>PC</option>
<option value="2" <?php if (isset($platformi) && $platformi=="Console") echo 'selected="selected"';?>>Console</option>
<option value="3" <?php if (isset($platformi) && $platformi=="Mobile") echo 'selected="selected"';?>>Mobile</option>
</select> <span class="error"><?php print($lisays->getError($platformError));?></span><br>
private static $virhelista = array (
0 => "",
51 => "You have to choose a platform: PC, console or mobile!",);
public function checkPlatformi($required = true) {
if($_POST['platformi'] == -1)
return 51;
else {
return 0;
}
}
2)我的第二个问题是使用单选按钮,我无法找到验证它们的方法(用户在提交之前未能选择错误消息时会收到错误消息)。我尝试了很多不同的代码。
<label>Pelin tyyppi:</label>
<input type="radio" name="tyyppi" value="t1"> <?php if (isset($tyyppi) && $tyyppi=="fps") echo "checked";?>FPS-Peli
<input type="radio" name="tyyppi" value="t2"> <?php if (isset($tyyppi) && $tyyppi=="rp") echo "checked";?> Roolipeli
<input type="radio" name="tyyppi" value="t3"> <?php if (isset($tyyppi) && $tyyppi=="adventure") echo "checked";?> Seikkailupeli
<input type="radio" name="tyyppi" value="t4"> <?php if (isset($tyyppi) && $tyyppi=="strategy") echo "checked";?> Strategiapeli
<input type="radio" name="tyyppi" value="t5"> <?php if (isset($tyyppi) && $tyyppi=="sports") echo "checked";?> Urheilupeli
<input type="radio" name="tyyppi" value="t6"> <?php if (isset($tyyppi) && $tyyppi=="simulator") echo "checked";?> Simulaattori
任何帮助将不胜感激:)
答案 0 :(得分:1)
1)在你的html中,你正在寻找未设置的$ platformi。如果您想保留用户的选择,您必须在答案中分配它。你在php中错过了这个变量的分配:
{{1}}
2)如果你想在提交之前进行检查,你将无法使用php,因为它在服务器端而不是在客户端运行,一些javascript可能会有所帮助。
答案 1 :(得分:0)
我建议您对代码进行一些小改动,如下所示
<label>Platform:</label>
<select name="platformi" id="platformi">
<option value="">Choose</option>
<option value="1" <?= ($platformi=="PC") ? 'selected':'' ?>>PC</option>
<option value="2" <?= ($platformi=="Console") ? 'selected':'' ?>>Console</option>
<option value="3" <?= ( $platformi=="Mobile") ? 'selected':'' ?>>Mobile</option>
</select> <span class="error"><?php print($lisays->getError($platformError));?></span><br>
private static $virhelista = array (
0 => "",
51 => "You have to choose a platform: PC, console or mobile!",);
public function checkPlatformi($required = true) {
$platformi = $_POST['platformi'];
if(empty($platformi) {
return 51;
} else {
return 0;
}
}
对于验证,您可以使用Bootstrap validator非常容易使用。
答案 2 :(得分:0)
如果您想在提交表单前检查$ platformi,则必须使用javascript。因为PHP在提交表单之前不会在此变量中获取任何内容。