html+phpでformのinput hiddenでデータを次のページに渡すとき、

同じnameで配列のように複数の値を渡したいのですが、
1)htmlの記述
2)php側の受けの記述
を教えてください。

複数チェック可のcheckboxが複数ある場合の処理などです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答7件)

id:jouno No.1

回答回数280ベストアンサー獲得回数0

ポイント15pt

http://itbtech.itboost.co.jp/php/php_09.php

itb-TECH 【 PHP:フォームからの値の受け渡し - 】

------------------------------------------------ hoge.html

<form action=”hoge.php”>

<input type=”checkbox” name=”fC[]” value=”hoge”> hoge


<input type=”checkbox” name=”fC[]” value=”foo”> foo


<input type=”checkbox” name=”fC[]” value=”bar”> bar


<input type=”submit” value=”OK”>

</form>

----------------------------------------------------------


------------------------------------------------- hoge.php

<?

// 配列 $fC に値が入っています。

// 添え字は 0 から連続で。

// 例えば、hoge と bar をチェックした場合は

// $fC[0] => ”hoge” 、 $fC[1] => ”bar” となります。


for( $i=0; $i<count($fC); $i++ ) {

print $i .” ::: ” . $fC[$i] . ”

¥n”;

}

?>

----------------------------------------------------------


ということのようです。

id:kunitz

ありがとうございます!

fC[]

2005/06/22 10:32:07
id:fayn No.2

回答回数22ベストアンサー獲得回数0

ポイント15pt

http://www.sakura-pc.jp/php/02020000.shtml

フォーム入力 【PHP講座】

html側では、フォームで送るときに配列にするために、inputのNameに[]をつけます。


複数チェックの場合。


HTML側

<html>

<body>

<form action=”URL” method=”POST”>


<INPUT TYPE=”checkbox” NAME=”check[]” VALUE=”1”>1


<INPUT TYPE=”checkbox” NAME=”check[]” VALUE=”2”>2


<INPUT TYPE=”checkbox” NAME=”check[]” VALUE=”3”>3


<INPUT TYPE=”checkbox” NAME=”check[]” VALUE=”4”>4


</form>

</body>

</html>


PHP側

受け取る側は、配列として受け取るために、変数に[]をつけます。


$check[] = $HTTP_POST_VARS[’check’];#とすると


複数のデーターはcheck[0],check[1],check[2]・・・にそれぞれ値がはいってくるので、


それらを処理するには、制御関数を使うなりして、


foreach ($check as $tmp) {

#個別処理 

$sum = $sum +$tmp;#この場合、チェックされた合計を算出する

}


のように扱うとよいと思います。

id:kunitz

ありがとうございます!

[]

2005/06/22 10:32:18
id:accessmania No.3

回答回数62ベストアンサー獲得回数0

ポイント14pt

http://www.stackasterisk.jp/tech/php/php02_06.jsp

PHP��2���FPHP����(�t�H�[��(form)�����̒l�̎��n��)

中程のチェックボックス系というところ。


<?php


#2)php側の受けの記述

if($_POST[’submit’]==’send’){

#$_POST[’arr’]が配列

print_r($_POST[’arr’]);

}else{

#1)htmlの記述

?>

<html>

<body>

<form action=”test.php” method=”post”>

<input type=”checkbox” name=”arr[]”>a

<input type=”checkbox” name=”arr[]”>b

<input type=”submit” name=”submit” value=”次のページ”>

</form>

</body>

</html>

<?php

}

?>

id:kunitz

ありがとうございます!

[]

2005/06/22 10:32:48
id:ke_ishi No.4

回答回数269ベストアンサー獲得回数0

ポイント14pt

URLはダミーです

サンプルを書きます


HTML側

<form action=”hoge.php” method=”post”>

<input type=”checkbox” name=”type[0]” value=”aaa”>aaa<br>

<input type=”checkbox” name=”type[1]” value=”bbb”>bbb<br>

<input type=”checkbox” name=”type[2]” value=”ccc”>ccc<br>

<input type=”submit” value=”GO”>

</form>


hoge.php

<?php

$type = $_POST[’type’];

print_r($type);

?>

id:kunitz

ありがとうございます!

=”type[0]”

2005/06/22 10:33:01
id:kip-lip No.5

回答回数4ベストアンサー獲得回数0

ポイント14pt

ん~っと

普通に渡すときと変わりませんが、

<input type=hidden name=name[] value=”1”>

みたいな形でhiddenを書いて

PHP側はname[0] name[1]で書いていけば大丈夫だと思います。

確認は取っていません。

<?php

echo $_POST[name][0];

?>

↑POSTの場合

id:kunitz

ありがとうございます!

2005/06/22 10:33:11
id:thrillseeker No.6

回答回数328ベストアンサー獲得回数37

ポイント14pt

split を使えば?


例:


送り手側:<input type=hidden name=data value=”a,b,c”>


受け手側:<? $array = split(”,”,$_REQUEST[”data”]); ?>


とやれば、受け手側で

$array[0] に a, $array[1] に b, $array[2] に c が入ります。

id:kunitz

ありがとうございます!

splitを使えば?

2005/06/22 10:33:27
id:Lucrezia No.7

回答回数26ベストアンサー獲得回数0

ポイント14pt

http://www.dumy.com/

dumy.com: The Leading Gag Gifts Site on the Net

お初に御目文字いたします。URLはダミーよ。

みんなここで引っかかるのねぇ(嘆息

ま、これに関しては「あんなおかしな仕様にしたPHPが全部悪い」って思うの。だから、おねぇさんが詳しく教えてあげるわ。

そうねぇ。まさにcheckboxのパターンでかいてみますわ。


通常の、例えばPerlでCGI.pmを使うときなんかですと、こんな風にできると思うの。


HTML

<INPUT type=”checkbox” name=”data” value=”1”>選択肢1


<INPUT type=”checkbox” name=”data” value=”2”>選択肢2


<INPUT type=”checkbox” name=”data” value=”3”>選択肢3


<INPUT type=”checkbox” name=”data” value=”4”>選択肢4


<INPUT type=”checkbox” name=”data” value=”5”>選択肢5


Perl.cgi

$query = new CGI;

@data = $query->param(’data’);


これで配列で取得できるわ(入ってくるのはvalueの値だ、ってところだけ気をつけて頂戴ね)。

ところが、PHPの場合、HTMLのnameのところに小細工をしてあげないといけないの。


HTML

<INPUT type=”checkbox” name=”data[]” value=”1”>選択肢1


<INPUT type=”checkbox” name=”data[]” value=”2”>選択肢2


<INPUT type=”checkbox” name=”data[]” value=”3”>選択肢3


<INPUT type=”checkbox” name=”data[]” value=”4”>選択肢4


<INPUT type=”checkbox” name=”data[]” value=”5”>選択肢5


こんな感じよ。[]っていう余分なものが入ったのがわかるかしら?

データ自体は、nameが”data”であるって思って普通に取得していただいて差し支えないわ。


PHP.php

$data = $_REQUEST[’data’];


これで、$dataに複数値でもデータが入ると思うわ。

がんばって頂戴ね。

id:kunitz

ありがとうございます!

2005/06/24 20:42:38

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません