0

このコードを使用して、選択ボックスの値を検証します。しかし、私の問題は、選択ボックスでオプションを選択せず​​にフォームを送信すると、エラーメッセージが表示されないことです。

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

4 に答える 4

1

問題は、how_hearが設定されていることのようです。デフォルトは

--Select an Option--

それを確認します

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

または、デフォルト値が0になるように選択フィールドを更新します(これが正しい方法です)。次に、値がゼロ以外であることを確認します。

<option value="0">--Select an Option--</option>
于 2013-02-05T05:01:44.283 に答える
1

試す

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

if (  $_POST['how_hear'] == 0) {
    //   error message
} 
于 2013-02-05T05:02:44.863 に答える
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'];
}
于 2013-02-05T05:02:22.507 に答える
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エラーが表示されます。

于 2013-02-05T05:18:30.877 に答える