我提交表单时没有出现我的错误消息

时间:2013-02-05 04:58:37

标签: php

我使用此代码验证选择框值。但我的问题是,当我在选择框中没有选择选项的情况下提交表单时,它不会出现错误消息。

if ( !isset( $_POST['how_hear'])) {
    $errors[] = 'Select an option from How did you hear us select box';                             
} else {
    $howHear = $_POST['how_hear'];
}

这是我的选择框

$howHear = array( 1 =>  'option value 01', 
                                'option value 02', 
                                'option value 03', 
                                'option value 04', 
                                'option value 05', 
                                'option value 06', 
                                'option value 07', 
                                'option value 08'
                        );

echo "<select name='how_hear'>
        <option>--Select an Option--</option>\n";

    foreach ( $howHear AS $key => $value) {
        echo "<option value='{$key}'";

        // Check for stickyness:
        if ( $_POST['how_hear'] == $key){
            echo " selected='selected'";
        }
        echo ">$value</option>\n";
    }
echo "</select>\n";

有人可以告诉我错误的地方吗? 谢谢。

4 个答案:

答案 0 :(得分:1)

问题似乎是设置了how_hear。默认值为

--Select an Option--

检查

$_POST['how_hear'] != "--Select an Option--"

或者,更新您的选择字段,使默认值为0(这是正确的事情)。然后检查该值是否为非。

<option value="0">--Select an Option--</option>

答案 1 :(得分:1)

尝试

<option value="0">--Select an Option--</option>

if (  $_POST['how_hear'] == 0) {
    //   error message
} 

答案 2 :(得分:0)

您应该添加另一个条件,

if ( !isset( $_POST['how_hear']) || $_POST['how_hear'] == "") {
    $errors[] = 'Select an option from How did you hear us select box';                             
} else {
    $howHear = $_POST['how_hear'];
}

答案 3 :(得分:0)

我对您的代码进行了一些更改并进行了更新。

<?php
    if (isset($_POST['submit'])) 
    {
       if ($_POST['how_hear'] == 0)
       {
           echo "error";
           $errors[] = 'Select an option from How did you hear us select box';                             
       }    
       else 
       {
           echo "Hello";
           $howHear = $_POST['how_hear'];
       }
     }

    echo "<form method='post' action='#'>";
    $howHear = array( 1 =>  'option value 01', 
                            'option value 02', 
                            'option value 03', 
                            'option value 04', 
                            'option value 05', 
                            'option value 06', 
                            'option value 07', 
                            'option value 08'
                    );
    echo "<select name='how_hear'>
        <option>--Select an Option--</option>\n";

        foreach ( $howHear AS $key => $value) 
        {
           echo "<option value='{$key}'>";
           echo "$value</option>\n";
        }

    echo "</select>\n";

    echo "<input type='submit' name='submit' value='submit'/>";

    echo "</form>";

?>

我添加提交按钮,当提交表单时,我会检查是否提交isset。 之后我检查how_hear值是否已选中。如果选项值0,则会显示错误。

相关问题