2012-07-26 19 views
14

複数のチェックボックス(id [])からデータを送信し、PHPの配列 "info"を作成して各値のスクリプトを実行できるようにしようとしています。毎回)しかし、まず各配列値の内容を表示しようとしています。私は配列にすべてのコンテンツを保存するために私の配列を配置する行を配置する方法についてはあまりよく分かりません。

私の希望に満ちた処理コードは、現在あるHTML

echo("<input name='id[]' type='checkbox' value='".$shopnumb."'>"); 

-

$info=$_POST['id[]']; 
Echo(array_values($info)); 

私は、フォームのチェックボックスから郵便で送られたコンテンツを作るために何をすべきかが必要ですが

配列情報を取り込みます

助けを歓迎します

はclarifiのために編集されましたカチオン。

答えて

30

変更

$info=$_POST['id[]']; 

フォームのフィールド名の末尾に[]を追加することにより

$info=$_POST['id']; 

に、PHPは自動的に配列にこれらの変数を変換します。

+0

これはおそらく私の最大の問題でした - 私はそれについても考えていませんでした。 –

5
<input name='id[]' type='checkbox' value='".$shopnumb."\'> 
<input name='id[]' type='checkbox' value='".$shopnumb."\'> 
<input name='id[]' type='checkbox' value='".$shopnumb."\'> 


$id = implode(',',$_POST['id']); 
echo $id 

アレイを出力するだけなので、アレイをエコーすることはできません。配列を出力したい場合はprint_rを使います。

print_r($_POST['id']); 
+1

ありがとう、私はなぜ私が "配列"を取得し続けているのだろうかと疑問に思っていた –

+0

id []を使用したことは、配列を渡していることを意味します。これは、複数のチェックボックスを渡す場合に使用されます。 1つのチェックボックスを渡すだけの場合は、単にname = "id"を使用してください –

+0

私はおそらく1をおそらく500に渡しています –

4

$ _POST ['id']のように配列を取得する必要があります。多分私はあなたの質問を理解していれば

<input name='id[]' type='checkbox' value='1'> 
<input name='id[]' type='checkbox' value='2'> 
... 
+0

これは本当に理にかなっている唯一の答えです – andreszs

2

私は知らないが、::

foreach ($_POST['id'] as $key => $value) { 
    echo $value . "<br />"; 
} 

入力名が同じでなければなりません。だから、これを行うことができるはず

foreach ($_POST as $id=>$value) 
    if (strncmp($id,'id[',3) $info[rtrim(ltrim($id,'id['),']')]=$_POST[$id]; 

help

これは、htmlフォームの各チェックボックスに別の名前(id [key])を設定したい場合です(あまり効率的ではありません)。そうでない場合は、それらの名前をすべて 'id'と同じ名前にして、配列の(選択した)値を繰り返します:foreach ($_POST['id'] as $key=>$value)...

関連する問題