PHP复选框&单选按钮

时间:2017-04-05 06:50:19

标签: php validation select radio

我是PHP新手,我正在学习一个学校项目。 我有一个包含不同类型字段的表单,当用户点击提交时,他们可能会收到各种错误消息,他们输入的字符太多,不够等等。

1)我的第一个问题是选择菜单。如果用户没有从中选择任何内容,我终于得到了错误消息。但是,当用户点击“提交”时,页面会忘记他选择的内容。我似乎无法弄明白。

这是我的HTML:

<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>

,这是我的PHP:

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)我的第二个问题是使用单选按钮,我无法找到验证它们的方法(用户在提交之前未能选择错误消息时会收到错误消息)。我尝试了很多不同的代码。

这是我的HTML:

<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  

任何帮助将不胜感激:)

3 个答案:

答案 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在提交表单之前不会在此变量中获取任何内容。