2012-04-15 28 views
1

[OK]を、私は、フォームとindex.htmlを持ってPHP扱う複数のチェックボックス

<table> 
    <tr> 
    <th>Field(s):</th> 
    <td> 
     <?php 
     if(isset($_POST['Field'])) 
     { 
      for($i = 0; $i < count($_POST['Field']); $i++) 
      { echo $_POST['Field'][$i] . ' '; } 
     } 
     ?> 
    </td> 
    </tr> 
</table> 

をしかし、何らかの理由で、私だけチェックされた最後のチェックボックスの最初の文字を取得します。助けてください!

+0

私のサーバー上にあるように、そのスクリプトが動作しますが、いくつかの簡単なトリアージのために、 'のvar_dump($ _ POST)してみてください;'と '$ _POST [「フィールド」]のインデックスは'あなたは彼らが何を考えていることを確認してください。また、どのサーバープラットフォーム/バージョンを使用していますか? – Foran

+0

私はWindows 7 Professional上でXAMPPを実行していますので、Apache/Windows 7 Proです。また、私はvar_dump($ _ POST)をエコーし​​ますか?私はまだPHPを学んでいるので、わかりません。 –

+0

以下のMuhammedの回答がうまくいくとすれば、あなたのサーバー環境によって異なるインデックスが生成されたと言えます。 'var_dump($ _ POST)'は良いデバッグツール/ステートメントです。物事が期待どおりに動作しておらず、 'echo'は必要ありません。 – Foran

答えて

5
Try this one in process.php to get the values from $_POST['Field'] 

    <table> 
    <tr> 
    <th>Field(s):</th> 
    <td> 
     <?php 
     if(isset($_POST['Field'])) 
     { 
      foreach ($_POST['Field'] as $value) { 
      echo $value; 
      } 
     } 
     ?> 
    </td> 
    </tr> 
    </table> 
+1

これはあなたが今のところ提供したように機能します。 htmlはもはや送信前にフォームデータを検証していません。私はindex.htmlページを変更しなかったので、私はこの時点で完全に混乱しています。 –

+2

process.phpはサーバー側で実行されるため、javascriptコードには影響しません。index.htmlのjavascriptコードをもう一度確認するか、ここにindex.htmlコードを投稿してください。だから、誰かがそれを確認して、あなたに明瞭な説明を提供することができます。 –

+1

気にしない、私は火かき棒を使ってエラーを追跡しました。名前の末尾に[]を付けてチェックボックスの名前を変更する必要が生じたとき、そのフィールドのjavascriptエラーチェックが破られました。だから、フィールド名を使って検証するのではなく、要素配列に変更する必要がありました:for(var i = 0; i

関連する問題