3

したがって、この学校のタスクを取得します。このタスクでは、フィールドの1つが入力されていないかどうかを確認し、エラーを表示する必要があります。これを実行しましたが、奇妙な理由で、ラジオボタンがオフになっている場合はエラーが表示されません(テキストフィールドのヌルチェックは正常に機能します)。

私は友人と多くの可能性を試しましたが、それらはすべてうまくいかないようです。私たちはこの仕事に2時間立ち往生しています。今、私たちは別々ifのを作成しようとしましたが、それもうまくいかないようです。

これらは重要な部分です:

<p>
<input type="hidden" name="taal" value="false">
    Choose a language
<input type="radio" name="taal" value="N"> Dutch
<input type="radio" name="taal" value="E"> English
<input type="radio" name="taal" value="S"> Spanish

if (@$_POST['taal'] == null){
echo "No Language gotten";
return;
}
4

4 に答える 4

9

非表示のタグは省略できます。

Choose a language
<input type="radio" name="taal" value="N"> Dutch
<input type="radio" name="taal" value="E"> English
<input type="radio" name="taal" value="S"> Spanish

そしてisset()、値が送信されたかどうかを確認するために使用します。ラジオボタンのいずれもチェックtaalされていない場合、投稿されたデータに追加されません。したがって、設定されているかどうかを確認する必要があります。これは、次のコマンドで実行できますisset()

if (!isset($_POST['taal'])){
    echo "No Language gotten";
    return;
}

また、ほとんどの場合、演算子を使用しないことをお勧めします。コードの問題について警告するエラーメッセージ(警告、通知など)があります。問題を非表示にするのではなく修正してください。そうしないと、問題が再発して後で噛み付く可能性があります。@

于 2012-10-06T09:32:56.687 に答える
3
if (!isset($_POST['taal']))  {
于 2012-10-06T09:33:09.310 に答える
2

それは決して空になることはないからです。デフォルト値を指定しました"false"。それに対してチェックしてください:

if ($_POST['taal'] == "false") {
   //No language given
}
于 2012-10-06T09:33:09.133 に答える
1

非表示の要素の値「false」は文字列であるため、機能するかどうかを比較する必要があります$_POST['taal'] == 'false'

このfalse要素を空の文字列に設定してから、と比較する方がよいでしょう''@また、警告を抑制するために使用することはお勧めしません。次のことを試してください。

if (!isset($_POST['taal']) || !$_POST['taal']) { ...
于 2012-10-06T09:34:09.223 に答える