2017-04-21 6 views
0

POSTを介してすべての値を取得したい場合は、falseを返すものも使用します。 1つのチェックボックスには、ソリューションhereがあります。それはハッキーですが、それは少なくともJavaScriptを必要としません。しかし、このチェックボックスを未チェックの配列に投稿する

<input name="link[]" type="checkbox"/> 
<input name="link[]" type="checkbox"/> 
... 

について他のポストで提案されているものと似ソリューションは動作しないだろうか、それが反復し続けるため:

<input name="link[]" type="hidden"/> <!-- 0 --> 
<input name="link[]" type="checkbox"/> <!-- 1 --> 
<input name="link[]" type="hidden"/> <!-- 2 --> 
<input name="link[]" type="checkbox"/> <!-- 3 --> 
... 
+0

POSTによって送信されたUNCHECKEDチェックボックスの値が必要ですか? –

+0

すべての値が必要なので、テキスト入力フィールド "name"によって返された配列と一致します。チェックされたものだけを取得すれば、実際にチェックされるチェックボックスを決定する方法はありません。 – meles

+0

これは完全に間違ったアプローチです。チェックボックスを正しく使用していません。 –

答えて

2

私は考えることができる一つの他の方法は、明示的にそれらを与えていますインデックス

<input name="link[0]" type="hidden"/> 
<input name="link[0]" type="checkbox"/> 
<input name="link[1]" type="hidden"/> 
<input name="link[1]" type="checkbox"/> 
<input name="link[2]" type="hidden"/> 
<input name="link[2]" type="checkbox"/> 

それとも、隠された入力を使用せずに、これを行うことができます:

を10

次に、サーバー側に配列インデックスがないかどうかを確認します。

+0

「名前」のインデックスを作成する可能性はありません。 –

0

フォームが提出されると、name属性が指定されているすべてのフォーム要素が、namevalueを送信します。ほとんどのフォーム要素では、valueはユーザーが入力したものに由来します。

ラジオボタンやチェックボックスを含むフォームを送信すると、チェックボックスまたはラジオボタンの名前と値のペアのみが送信されます。このようにして、フォーム処理コードはチェックされたボタン/ボックスをソートする必要がありません。しかし、この結果として、チェックボックスとラジオボタンの両方がvalue属性のためにvalueに設定されている必要があります。この値は、どのボタン/ボックスが選択されたかを知る方法です(checkbox4=trueという名前/値のペアを受け取っても実際にはあまり意味がありません)。

次のコードでは、フォームのactionチェックボックスがチェックされたに提出されたデータでは、どのようなこれらのチェックの意味があった。

<input type="checkbox" name="chkStudent1" value="Mary"> Mary 
<input type="checkbox" name="chkStudent2" value="John"> John 
<input type="checkbox" name="chkStudent3" value="Joe"> Joe 

さて、フォームが送信されたときに、そしてあなたは第二のチェックボックス、名前/値のペアをチェックしましょうchkStudent2=Johnが提出されます。フォーム処理コードは、どの要素がチェックされたかを正確に把握し、対応するデータをそのコードで利用できるようにします。

関連する問題