2017-12-27 12 views
-2

私はラジオ入力を含むフォームを持っています。ラジオ入力は、0,1またはenotのいずれかを選択できます。私は、値が0,1またはデータベースに投稿される前に空であることを確認する入力の検証をしようとしています。どういうわけか、次のコードは動作しません。空のラジオ入力の確認

誰かが私を助けることができますか?

$posttodatabase = true; 
$array = (0, 1); 
if (!in_array($_POST['x'], $array) && isset($_POST['x'])) { 
    $posttodatabase = false; 
}; 

EDIT:添付形式:

 <form action='registration.php' method=POST> 
      <input type="radio" name="x" value=0> Foo 
      <input type="radio" name="x" value=1> Bar 
      <input class="button" type=submit value='Submit'> 
     </form> 
+0

は、HTML /フォームを含めるようにあなたの質問を更新します。 –

+0

フォームに記載されているすべてのものを引用する必要があります。どちらの場合でも、以下にいくつかの回答があります。 –

答えて

1

true$posttodatabaseデフォルトを設定し、要件が満たされていないときfalseにそれを変更しないでください。それ以外の方法で、値がtrueに設定されていることを確認します(値は存在し、期待値の1つです)。

$posttodatabase = false; 
if (!isset($_POST['x']) OR     // is not set OR 
    (
     isset($_POST['x']) AND    // is set and... 
     in_array($_POST['x'], array(0, 1)) // ... one of these values 
    )) { 
    $posttodatabase = true; 
} 

(または直接値を割り当てる...)

+0

残念ながら、これは空の無線値を捕まえません(オプションが指定されていない場合に発生します)。これをどうすれば解決できますか? – StudentAsker

+0

@StudentAsker有効なオプション/「入力」は選択されていませんか? – Progman

+0

正しいです。 – StudentAsker

関連する問題