1

簡単な質問です。ラジオボタンを選択しなかったときに、エラーメッセージUndefined index:genderが表示されました。

<?PHP
if(isset($_POST['register'])){

    $gender=$_POST['gender'];
    echo $gender;
    }
?>

<html>
    <form action="testing.php" method="POST">
        <input type="radio" name="gender" value="male" />Male
        <input type="radio" name="gender" value="female" />Female
    <input type="submit" name="register" value="Register" />
    </form>
</html>
4

7 に答える 7

6
<?PHP
if(isset($_POST['register'])){


    if(!empty($_POST['gender'])) {

        $gender=$_POST['gender'];
        echo $gender;

        }
    }
?>

<html>
    <form action="radio.php" method="POST">
        <input type="radio" name="gender" value="male"  />Male
        <input type="radio" name="gender" value="female" />Female
    <input type="submit" name="register" value="Register" />
    </form>
</html>
于 2012-12-05T10:49:46.007 に答える
4

@$_POST['gender'] を使用してエラーを発生させないようにすることができます

于 2012-12-05T10:49:21.920 に答える
1

チェックされていないラジオボタンとチェックボックスはフォームによって投稿されないため、に表示されません$_POST

于 2012-12-05T10:41:56.887 に答える
1

もちろん、ラジオボタンを選択しないとエラーになります。いずれかを選択しないと、値が投稿されないためです。1) isset() でインデックスが存在するかどうかを確認するか、2) ページの読み込み時にラジオ ボタンをチェックして、値が常に送信されるようにすることができます。

于 2012-12-05T10:42:38.317 に答える
0

選択されたラジオボタンがない場合、「性別」入力の値は送信されません。これは、チェックボックスをオンにしないのと同じです。を使用して、それが存在し、有効な値を持っているかどうかを確認する必要があります

if(!empty($_POST['gender'])) {
    ...
}

他のチェック方法には次のものがisset($_POST['gender'])ありarray_key_exists('gender', $_POST)ますが、これらは値がゼロであるか空の文字列であるかをチェックしません(これはあなたが望むものである場合とそうでない場合があります)

于 2012-12-05T10:41:31.160 に答える
0

問題は$_POST['gender']. 何も選択していないため、性別は未定義です。

を使用して、定義されたインデックスを確認できますarray_key_exists('gender', $_POST)

于 2012-12-05T10:43:04.667 に答える
-1

この問題は、この方法で簡単に解決できます。

if(isset($_POST['register'])){
    if(isset($_POST['gender'])) {
        $gender = $_POST['gender'];
    }else{
        $gender = "";
    }
}

PHP で検証する必要がある場合は、 $gender = ""; に対して行うことができます。

<html>
<form action="radio.php" method="POST">
    <input type="radio" name="gender" value="male"  />Male
    <input type="radio" name="gender" value="female" />Female
<input type="submit" name="register" value="Register" />
</form>

于 2016-12-04T11:05:15.857 に答える