23

複数のチェックボックス(id [])からデータを送信し、PHPで配列「情報」を作成して、値ごとにスクリプトを実行できるようにしようとしています(ただし、値の量は毎回変わる場合があります)が、最初にしようとしています各配列値の内容を表示します。すべてのコンテンツを配列に保存するために、配列に入力する行を配置する方法がよくわかりません。

HTML

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

私の希望する処理コードは現在 -

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

フォームのチェックボックスから郵送で送信されたコンテンツに配列情報を入力するにはどうすればよいですか

どんな助けでも大歓迎です

明確にするために編集されました。

4

4 に答える 4

38

変化する

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

$info=$_POST['id'];

フォーム フィールド名の末尾に追加[]することで、PHP はこれらの変数を自動的に配列に変換します。

于 2012-07-26T18:50:12.300 に答える
16

$_POST['id']のように配列を取得する必要があります。したがって、これを実行できるはずです。

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

入力名は同じである必要があります。

<input name='id[]' type='checkbox' value='1'>
<input name='id[]' type='checkbox' value='2'>
...
于 2012-07-26T18:54:37.360 に答える
8
<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']);
于 2012-07-26T18:52:05.040 に答える
2

あなたの質問を理解しているかどうかわかりませんが、おそらく:

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

役立つだろう

これは、HTML フォームの各チェックボックスに別の名前 (id[key]) を本当に付けたい場合です (あまり効率的ではありません)。そうでない場合は、それらにすべて同じ名前を付けることができます。つまり、「id」と、次のように配列の (選択された) 値を反復処理します。foreach ($_POST['id'] as $key=>$value)...

于 2012-07-26T18:56:15.620 に答える