2011-08-15 5 views
2

私は人々が情報を提出する必要があるフォームを持っています。このコード部分は私が望む方法では動作しません。理由はわかりません。PHPがチェックボックスと連動しない

if (!isset($_POST['maandag']) && !isset($_POST['dinsdag']) && !isset($_POST['geenvoork'])) 
{ 
    echo "Je bent vergeten in te vullen wanneer je aanwezig bent."; 
} 

投稿はフォームの残りの部分で機能し、正しいです。私が欲しいのは、これら3つのチェックボックスがチェックされていないかどうかをチェックすることです。私は間違って何をしていますか?

+0

なぜこのようなラジオグループを使用しないのですか? – TJHeuvel

+1

設定されていない空であるかどうかを確認する必要があります。それらは常に設定する必要がありますが、チェックされていない場合は空になります。 – Prisoner

+0

いいですね。 –

答えて

2

あなたのフォームにあれば、それらは設定されます。おそらく、それらが間違っているかどうかチェックしたいでしょう。ここでは、他の人を組み合わせることができ、それは1のためにあるものです。第二に

if(!isset($_POST['maandag']) || !$_POST['maandag']) { 
    // do something 
} 

コードされることは、チェックボックスのどれが設定されていない場合にのみ、メッセージが表示されますことを意味します。私は確信していませんが、もしあなたがエラーメッセージを投げようとしているのであれば、それらのどれかが設定されていなければあなたはそれを望んでいませんか?この場合、||(または)は&&(および)ではありません。複雑を作るコーディングウル

+0

もう一度、偽の声明に基づいて間違ったアドバイス –

+0

3つのチェックボックスがすべてチェックされていないかどうかを確認する必要があります。チェックされていない場合は、メッセージを表示します。 1つ以上チェックされている場合は、表示しないでください。とにかく、これはうまくいきました:if(!isset($ _Post ['maandag'])&&!$ _ POST ['maandag'] &&!isset($ _ POST ['dinsdag'])&&!$ _ POST ['dinsdag'] &&! ($ _ POST ['geenvoork'])&&!$ _ POST ['geenvoork'] –

+0

それはちょっと醜いです。 –

3

print_r($_POST)を試して、フィールドの値が何であるか確認できます。これは、あなたの投稿/フィールド値で何が起こっているのかを判断するのに役立ちます。

-1

囚人は、それが空であるかどうかを確認する必要があると言いましたが、これが設定されていないと、あなたに通知することができます。

あなたが必要となる場合:

isset($_POST['checkbox']) && !empty($_POST['checkbox']) 

編集を:私は、あなたの右のそれが何かを返すdoes notの愚かな。下記のようにprint_rであなたの投稿をチェックするのが最善の選択肢のように聞こえます。

+1

とコメント者として、ステートメントが間違っていると指摘しました。 –

+0

empty()は信頼できません。ブラウザ側のチェックボックスの値が '0'の場合、empty()がtrueになります。空の文字列にキャストできるPHPの値は 'empty()'とカウントされます。 –

1

私の事。,,

は、あなたは可能性が値を提出し、実際にそれが動作するはず結果

-1

を取得...

<input type="checkbox" name="test[]" value="1"/> 
<input type="checkbox" name="test[]" value="2"/> 
<input type="checkbox" name="test[]" value="3"/> 
のようにしてみてください常にチェックボックスに値を設定し、その値が返されることを具体的にチェックしてください:

<input type="checkbox" name="maandag" value="1"/> 

<?php if(isset($_POST['maandag']) && $_POST['maandag'] != '1') { /* ... */ } 
+1

はチェックボックスに当てはまりません。 –

0

HTMLのチェックボックスに適切な値を設定します。

<input type="checkbox" ... value="1"> 

あなたの現在承認されているソリューションは、PHPコードを複雑にしています。

0

私はちょうど私が使用していますチェックボックス時にチェックを行い、ここでの値です:とき入力の場合

isset($_POST["Isolated1"]) 

//True 

($_POST["Isolated1"]) 

//True 

:入力は次のように次評価さをチェックされている場合場合

<input id="Isolated1" type="checkbox" value="1" name="Isolated1"></input> 

チェックされていない:

isset($_POST["Isolated1"]) 

//False 

($_POST["Isolated1"]) 

//Notice: Undefined index 

したがって、empty()関数を使用することをお勧めします変数が存在しないか、その値がFALSEに等しいかを最終的にチェックします。

+0

あなたはこの質問が2011年8月のものだったことを知っていますか?.. –

+0

解決策としてはまだまだ関連していると思いますが、機能自体は古くはありません。誰かに加えて、同じテストを何度も繰り返す必要がないことが、誰かには分かります。私はほとんど常にソリューションを見つけて、最初のいくつかの答えを見て、Googleを使用して... –

関連する問題