みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Formを使ったページ間での受け渡し

いつもお世話になっています。
また、どうしても分からないことがあって投稿させて頂きます。

現在、商品管理ページをphpとmysqlで作っているのですが、

---------------------------(分かりにくいかもしれませんが、作ってる文をそのまま載せます)
<form action="Div_Insert.php" method="post">
 (接続&クエリ省略)
if($rows){
while($row = mysql_fetch_array($res)){

$GetItem .= "<tr>";
$GetItem .= "<td colspan=5>".$row["ITEM_ID"]."</td>";
$GetItem .= "</tr>";
$GetItem .= "<tr>";
$GetItem .= "<td>".$row["ITEM_NM"]."</td>";
$GetItem .= "</tr>";
$GetItem .= "<tr>";
$GetItem .= "<td>".$row["EXPLAN"]."</td>";
$GetItem .= "</tr>";
$GetItem .= "<tr>";
$GetItem .= "<td>".$row["ITEM_DIV"]."</td>";
$GetItem .= "</tr>";
$GetItem .= "<tr>";
$GetItem .= "<td>";
$GetItem .= "<SELECT name='ITEM_GP_LIST'><OPTION value=''></OPTION>";
while ($row2 = mysql_fetch_array($res2,MYSQL_ASSOC)){
$GetItem .= "<OPTION value=".$row2["GP_NM"].">".$row2["GP_NM"]."</OPTION>";
}
mysql_data_seek( $res2, 0 );
$GetItem .= "</SELECT>";
$GetItem .= "</td>";
$GetItem .= "<tr>";
}
(省略)
<input type="submit" name "bottun1" value="登録">

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

というプログラムのページを作りました。
submitされた時にDiv_Insert.phpへ $row["ITEM_ID"]とITEM_GP_LISTの値を渡せるように作りたいのですが、
試行錯誤を重ねましたが私の実力では不可能でした。

複数行の$row["ITEM_ID"]とITEM_GP_LISTを渡すというのが難しくて。。

とても分かりにくい質問だと思いますが、どうか宜しくお願い致します。

投稿日時 - 2008-10-22 02:55:47

QNo.4420046

すぐに回答ほしいです

質問者が選んだベストアンサー

1つは、$row["ITEM_ID"]の値を、typeがhiddenのinput要素に記述するということが必要ですね。これで、$row["ITEM_ID"]の値がポストで渡せます。
で、複数の値の渡し方ですが、nameにITEM_ID[]、ITEM_GP_LIST[]のように、引数なしの配列の要素指定を書きます。同じ名前ですと、$POST['ITEM_GP_LIST']には、最後の値が入ります。このように書けば、Div_Insert.phpでは、
$item_gp_list = $POST['ITEM_GP_LIST'];
として、
$item_gp_list[0]
$item_gp_list[1]
といった形でアクセスできます。

投稿日時 - 2008-10-22 09:19:14

お礼

ありがとうございます。
実はすでにinput type hiddenで渡そうと頑張っていたのですが、
渡せませんでした。。

たぶん、私の書き方が悪いんだと思うのですが・・
----------------------------(その時の書き方です)
<form action="Div_Insert.php" method="post">
 (接続&クエリ省略)
if($rows){
while($row = mysql_fetch_array($res)){

$GetItem .= "<tr>";
$GetItem .= "<td colspan=5><input type='hidden' value='".$row["ITEM_ID"]."' name='item_id'></td>";
$GetItem .= "</tr>";
$GetItem .= "<tr>";
(省略)
------------------------------------
これだと、nameの書き方が悪かったせいで渡せなかったのでしょうか・・

nameを配列にして書いてみます。

また、受け取り側のphpではもらった[ITEM_ID]のmysqlDBにドロップダウンで選択されたITEM_GP_LISTをINSERTもしくはUPDATAしたいのですが、

配列が何行になるか分からないためSQLを while文で流すまでは分かるのですが、while文が書けません。。。

何から何まで申し訳ありませんが、教えて頂けると幸いです。

投稿日時 - 2008-10-22 09:45:23

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問