• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Formを使ったページ間での受け渡し)

Formを使ったページ間受け渡しについて

このQ&Aのポイント
  • Formを使ったページ間の受け渡しについて質問があります。
  • 現在、phpとmysqlを使用して商品管理ページを作成しています。
  • submitされた時に特定の値を渡す方法がわからないので、アドバイスをいただきたいです。

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

  • ベストアンサー
  • masa6272
  • ベストアンサー率66% (93/140)
回答No.1

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] といった形でアクセスできます。

yu-ki0326
質問者

お礼

ありがとうございます。 実はすでに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文が書けません。。。 何から何まで申し訳ありませんが、教えて頂けると幸いです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ページ間の値の受け渡しについて

    緊急でPHPを用いて開発しなければならず、値の受渡し方法が調べても 結果がうまく出来ないために教えて下さい。 説明がうまくできないので、ソースの一部を下記に記載しております。 【keikaku.php】 <?php $link = DB接続 $query = "SELECT (1) , (2) , (3) FROM KEIKAKU WHERE 営業所= '東京'"; $res_result = mysql_query($query,$link); echo ("<form action='keikaku_input.php' method='POST'>"); while($row = mysql_fetch_array($res_result)){  echo ("<table border=1>");  echo ("<tr>");  echo ("<td><input type='radio' name='name' value=''></td>");  echo ("<td>");  echo $row['(1)'];  echo ("</td><td>");  echo $row['(2)'];  echo ("</td><td>");  echo $row['(3)'];  echo ("</td>");  echo ("</tr>"); } echo ("<input type='submit' value='次へ'>"); echo ("</form>"); ?> というSQLで一覧を表示させて、対象行のラジオボタンが選択されると (1)と(2)の値を使い、【keikaku_input.php】で更に別のSQLを実行後に 結果を表示させる事を行ないたいのです。 【keikaku.php】→【keikaku_input.php】へ(1)と(2)の値を渡したい場合 はどのようにすれば良いかご教授願えませんでしょうか?

    • ベストアンサー
    • PHP
  • クリック時にSQLを流したい。

    いつもお世話になっています。 phpを用いてDBから取得した情報をhtmlに表示するプログラムがあります。 [表示している内容] ・名前 ・URL URL部をクリックすると、もちろんそのアドレスに遷移するのですが、 その際にDBにupdate文を流したいと考えています。 (URLがクリックされた回数をカウントしたいので) -------------[現在のプログラム]--------------- (DB接続) $sql = "SELECT ITEM_NM, ITEM_URL FROM ITEM_LIST"; $res = mysql_query($sql); $rows = mysql_num_rows($res); if($rows){ while($row = mysql_fetch_array($res)) { $Item .= "<table>"; $Item .= "<tr><td>".$row["ITEM_NM"]."</td></tr>"; $Item .= "<tr><td>".$row["ITEM_URL"]."</td></tr>"; $Item .= "</table>"; } } (DB切断) <?= Item ?> --------------------------------------------- 今までこのようなプログラムの場合は<Form action="" method="post"> で遷移先のページでupdateしていたのですが、今回は遷移先のページに 手を入れることが出来ないため困っています。 ご指導宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPで検索画面を作成していますが上手に動きません

    PHP超!初心者です。よろしくお願いいたします。 行いたい事は、 HTML上にあるドロップダウンリストから項目を選択し実行すると、一致する項目をPHPMysql DBより抽出し表形式で表示したい。です。 PHPmysql→ ユーザー名:user パスワード:passwd データベース名:dbnameテーブル名:table_nm 検索画面→kensaku.html 検索結果→kensaku.php ●kensaku.html <html> <head> <title>検索</title> </head> <body> <br> <h1>種類</h1> <br> <form action = "http://localhost/lesson/kensaku.php" method="POST"> <p> 種類:<br /> <select name="betu" style="width:200" id="search_process"> <option value="" selected="selected">一覧から選択</option> <option value="あ">あ</option> <option value="い">い</option> <option value="う">う</option> <option value="え">え</option> <option value="お">お</option> </select></p> <p>    <input type="submit" name="exec" value="検索"> </form> </body> </html> ●kensaku.php <html> <body> <? if (!$con = mysql_connect("localhost", "user", "passwd")) {    print "接続エラー" ;    exit ; } mysql_select_db("dbname", $con) $sql = "select sid, name, price, betu, area, memo from table_nm" ; $sql . = "where betu like '$betu'" ; if (!$res = mysql_query($sql)) {    print "SQLエラー<BR>" ;    exit } <table border=1> <tr> <th>NO</th><th>名前</th><th>金額</th><th>種別</th> /tr> while($row = mysql_fetch_array($res)){    <tr>    <td><?php ($row['sid']); ?></td>    <td><?php ($row['name']); ?></td>    <td><?php ($row['price']); ?></td>    <td><?php ($row['betu']); ?></td>    </tr> } </table> </body> </html> 説明不足の部分がありましたら、申し訳ございません。 よろしくご教授お願いいたします。

    • ベストアンサー
    • PHP
  • form id、nameの番号振りなおし

    jqueryとphpにてフォームを作成しています。 フォームの追加、削除できるシステムを作っており、 フォームの追加はできたので、削除した際のinputのnameやidの番号を振り直しができず困っています。 商品1<br> <a href="javascript:void(0);" class="del" id="del_1">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][1][sir]" value="<?php echo $item[data][1][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][1][name]" value="<?php echo $item[data][1][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][1][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> <a href="javascript:void(0);" id="add">フォームの追加</a> としており、 「フォームの追加」をクリックすると 商品2<br> <a href="javascript:void(0);" class="del" id="del_2">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][2][sir]" value="<?php echo $item[data][2][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][2][name]" value="<?php echo $item[data][2][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][2][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> 商品3<br> <a href="javascript:void(0);" class="del" id="del_3">削除</a> <table> <tr> <th>商品番号</th> <td><input type="text" name="item[data][3][sir]" value="<?php echo $item[data][3][sir]; ?>"></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="item[data][3][name]" value="<?php echo $item[data][3][name]; ?>"></td> </tr> <tr> <th>商品個数</th> <td> <select name="item[data][2][num]"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> </tr> </table> ができるようにPHPにてSESSION管理をおこなっています。 追加はできたのですが、 上記のフォーム4つほど出した後に商品2を削除した場合の商品1、商品3、商品4の各nameの番号(item[data][*][sir]、item[data][*][name]、item[data][*][num]の*部分) 振りなおしができず困っています。 いくらやってもできないため、どなたかソースを教えていただけないでしょうか。 宜しくお願いいたします。

  • mysql>PHPにデータ表示、10件ごとにページ分割

    はじめまして、PHP勉強中の初心者です。。 MYSQLから取り出したデータを件数でページ分割したいのですが、 うまくきません。。 環境:eclipse3.5、mysql5.0、php5.0、xampp (phpで、sql接続、select * from でデータは表示は確認できてます)。。 ソースは↓です。。(初心者なもので不備がればすみません)。。 eclipse上では if (($page_num+1)*10<$cnt) {}でエラーで表示されます。。 どなたかご存知の方いましたら、教えていただけないでしょうか? <!--kensaku.html--> <html> <body> <form action ="kensaku.php" method="post">    名前:<input type="text" name="nm">    年齢:<input type="hidden" name="page_num" value="0">    <input type="submit" name="exec" value="検索"> </form> </body> </html> //kensaku.php ソース <html> <body> <? $nm=$_POST['nm']; $page_num=$_POST['page_num']; //データベースに接続 if (!$conn =mysql_connect("","user","PASS")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("table", $con)) { echo "データベース選択エラー" ; exit ; } //LIMITを使ったSELECT文を作成 $sql = "select id,name from table " ; $sql.= "where name like '%$nm% ' order by id " ; $sql.="limit" . $page_num * 10 . ", 10" ; //SQL実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } //検索結果表示 echo "<table border=1>" ; echo "<tr><td>id</td><td>name</td></tr>" ; while($row = mysql_fetch_array($res)){ echo "<tr>" ; echo "<td>" . $row["id"] . "</td>" ; echo "<td>" . $row["name"] . "</td>" ; echo "</tr>" ; } echo "</table>" ; //検索条件に該当する全データの件数取得 $sql = "select count(*) from member " ; $sql.="where name like '% $nm % ' order by id " ; if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } $row = mysql_fetch_array($res) ; $cnt = $row[0] ; //ページ表示 if(!$cnt > 10) echo ceil($cnt / 10), "ページの中の", $page_num + 1, "ページ目を表示<br>"; //前の10件 if ($page_num !=0) { echo "<a href = kensaku.php?nm=".$nm.",".$page_num -1..">"; echo "&lt 前の10件"; } //次の10件.--ここからエラー行ですが、、解決策がわかりません。。 if (($page_num+1)*10<$cnt) { echo "<a href = kensaku.php?nm=".$nm.",".$page_num +1..">"; echo " 次の10件 &g</a>t"; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </body> </html> すみませんが、ご存知の方いましたら、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • データベースにある値でリストボックスを作成

    現在、PHPとMySQLを使用したプログラムを作成しているのですが、フォームのリストボックスの値にMySQLに登録されている値を使用したいのですがどうしたらよいのでしょうか? ?> <tr><td><b>作業名</b></td><td> <select name="inpWorkName"> <? $Count = 0; while($row=mysql_fetch_array($rs)) { for($j=0;$j<$num;$j++) { $WorkName[$Count] = $row[0]; } ?> <option value="<?=$WorkName[$Count]?>"><?=$WorkName[$Count]?> <? $Count++; print("</tr>"); } ?> </select> </td></tr> <? 上記のように書いたのですが、リストボックスに値が表示されません。 お手数かとは思いますが、よろしければ教えてください。 お願いします。

    • ベストアンサー
    • PHP
  • while文の中にwhile文を書きたいのですが。。。

    while文の中にwhile文を書きたいのですが。。。 現在、下記ソースでプログラムを記述しております。 下記ソースですと、1回目のループのデータは抽出できるのですが、2回目のループだとデータが抽出できません。。 <? while($item0_3 = mysql_fetch_array($res0_3)){ ?> <tr> <td class="A"> <select name="work_partner_com[]"> <? while ($item5_2 = mysql_fetch_array($res5_2)) {?> <option value="<?=$item5_2["com_name"]?>"><?=$item5_2["com_name"]?></option> <? }?> </select> </td> <td class="B"> <select name="work_com[]"> <? while ($item5_3 = mysql_fetch_array($res5_3)) {?> <option value="<?=$item5_3["name"]?>"><?=$item5_3["name"]?></option> <? }?> </select> </td> </tr> <? } ?> 1回目のwhile文で、データーベースの指定したテーブルに格納されている数 2回目のwhile文で、データーベースの指定したテーブルに格納されているマスタデータ数 ご教授いただけますでしょうか。

    • ベストアンサー
    • PHP
  • htmlページからjspページへの受け渡し

    htmlページでスポーツ種目を選びjspページで種目名・料金・画像を表示するものですが tableに入れる方法やテーブルの行の繰り返しが上手く出来ません 配列を使ってはみましたが、画像が正しく表示できていません ※修正できる箇所は限られています htmlページ <html> <head> <title></title> </head> <body> <div align="center"> <h1>参加スポーツの選択</h1> <form action="jspFormexam2.jsp" method="get"> <table border="1" bgcolor="white"> <tr bgcolor="#00FFFF"> <td colspan="4"> スポーツを選択してください </td> </tr> <tr> <td><img src="img/banana.jpg" height="100" width="166"></td> <td>バナナボート</td> <td> <input type="checkbox" name="tour" value="0"> </td> <td>$30</td> </tr> <tr> <td><img src="img/para.jpg" height="100" width="166"></td> <td>パラグライダー</td> <td> <input type="checkbox" name="tour" value="1"> </td> <td>$45</td> </tr> <tr> <td><img src="img/surfing.jpg" height="100" width="166"></td> <td>サーフィン</td> <td> <input type="checkbox" name="tour" value="2"> </td> <td>$20</td> </tr> <tr> <td><img src="img/dive.jpg" height="100" width="166"></td> <td>ダイビング</td> <td> <input type="checkbox" name="tour" value="3"> </td> <td>$100</td> </tr> <tr> <td><img src="img/golf.jpg" height="100" width="166"></td> <td>ゴルフ</td> <td> <input type="checkbox" name="tour" value="4"> </td> <td>$70</td> </tr> <tr> <td colspan="2">参加人数</td> <td><input type="text" name="people" size="4"></td> </tr> </table> <input type="submit" value="送信"> <input type="reset" value="リセット"> </form> <h2>5人以上で10%off</h2> </div> </body> </html> jspページ <%@ page contentType="text/html;charset=Shift_JIS"%> <% request.setCharacterEncoding("Shift_JIS"); int[] tourPrice = {30,45,20,100,70}; String[] tourName ={"バナナボート","パラセイリング","サーフィン","ダイビング","ゴルフ"}; String[] tourImg ={"banana.jpg","para.jpg","surfing.jpg","dive.jpg","golf.jpg"}; int total =0; int itemprice =0; String tableData ="<tr bgcolor='#00FFFF'><th>ツアー名</th>"+"<th>単価</th><th>合計</th><th>イメージ</th></tr>"; String message =""; String subject =""; 修正可能箇所↓ String[ ] tourValues=request.getParameterValues("tour"); for(int i=0; i<tourValues.length; i++){ <%=tourPrice[i] %> <%=tourName[i] %> <%=tourImg[i] %> <% } %> 修正可能箇所↑ <html> <head> <title>マリンスポーツ申し込み明細</title> </head> <body> <div align="center"> <h1 align ="center"><%= subject %></h1> <hr> <table border ="1"> <%= tableData %> </table><br> <%=message %> <hr> </div> </body> </html>

    • ベストアンサー
    • Java
  • PHPでセッションを使った受け渡しについて

    PHPでECサイトのカート機能を作っています。 まず商品一覧画面(index.php)にデータベースから読み取ったidとNAME、そして個数、サイズ、包装の有無のセレクトボックスを表示します。 それぞれの商品の追加ボタンを押すとカートのphp(t_cart.php)に飛んで上記の情報を全て表示できるようにしたいのですが、idとNAMEと個数の情報は受け渡せるのですが、サイズや包装の有無は別の商品を追加すると全ての商品の情報が上書きされてしまいます。 コードの一部を記載しておきます。 まだPHPを始めたばかりで初歩的な事がわからないのですが、ぜひ御知恵をお貸しいただければとおもいます。 よろしくお願いします。 ・index.php <table> <?php foreach ($Menu as $g) { ?> <tr> <td> <p class="Menu"><?php echo $g['id'] ?></p> </td> <td> <p><?php echo $g['NAME'] ?></p> </td> <form action="t_cart.php" method="post"> <td> <a>個数:</a> <select name="num"> <?php for ($i = 1; $i <= 10; $i++) { echo "<option>$i</option>"; } ?> </select> </td> <td> <a>サイズ:</a> <select name="size"> <option>S</option><option>M</option><option>L</option> </select> </td> <td> <a>包装:</a> <select name="deco"> <option>有</option><option>無</option> </select> </td> <td> <input type="text" name="id" value="<?php echo $g['id'] ?>"> <input type="submit" name="submit" value="go to cart"> </td> </form> </tr> <?php } ?> </table> ・t_cart.php <?php require 'common.php'; $rows = array(); $sum = 0; $pdo = connect(); if (!isset($_SESSION['cart'])){ $_SESSION['cart'] = array(); } if (@$_POST['submit']) { @$_SESSION['cart'][$_POST['id']] += $_POST['num']; } foreach($_SESSION['cart'] as $id => $num) { $st = $pdo->prepare("SELECT * FROM Menu WHERE id=?"); $st->execute(array($id)); $row = $st->fetch(); $st->closeCursor(); $row['num'] = strip_tags($num); $row['size'] = $_POST['size']; $row['deco'] = $_POST['dough']; $rows[] = $row; } ?>

    • 締切済み
    • PHP
  • form actionタグ

    dbから取得した値を元に一覧画面を作成し 一つのデータに対して一つのボタンを設定し そのボタンをクリックした際にIDを別の画面に渡す処理を 行っていますが、パラメータを渡す事が出来ません…。 <?php while($data = mysql_fetch_array($res)){ print "<tr><td>".$data['id']."</td>"; print "<td>".$data['name']."</td>";   ⇒★print "<form method=\"post\" action=\"delete.php?id=\".${data['id']};>"; print "<td><input type=\"submit\" value=\"更新\" name=\"aaa\"></td>"; print "</form>"; print "</tr>"; } ★の部分が理由でうまくいかないと思うのですが… もしお分かりになる方が居たらご教授お願い致します。

    • ベストアンサー
    • PHP