• ベストアンサー

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
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.2

============= delete.php ========================= echo $_GET[ 'id' ]; ================================================== or ================================================== function h( $str ) { echo htmlentities( $str, ENT_QUOTES ); } <?php while ($data = mysql_fetch_array($res)) : ?> <tr>  <td><?php h($data['id']); ?></td>  <td><?php h($data['name']); ?></td>  <td>   <form method="post" action="delete.php">    <p>     <input type="hidden" name="id" value="<?php h($data['id']); ?>">     <input type="submit" value="更新" name="aaa">    </p>   </form>  </td> </tr> <?php endwhile; ?> ================================================== or ================================================== <form method="post" action="delete.php"> ... <table> ... <?php while ($data = mysql_fetch_array($res)) : ?>  <tr>   <td><?php h($data['id']); ?></td>   <td><?php h($data['name']); ?></td>   <td><button type="submit" value="<?php h($data['id']); ?>" name="id">更新</button></td>  </tr> <?php endwhile;?> ... </table> ... </form>

NeilMania
質問者

お礼

メッセージありがとうございます。 hiddenでのパラメータの渡し方は イメージとしてあったのですが、buttontypeタグでパラメータを 渡す事が出来るのは知りませんでした。 朝早くからソースまで書いて頂きありがとうございます。 <form>タグ,hidden,buttonTypeタグと3つのやり方を教えて 頂いたので、参考にさせていただきたいと思います。 ありがとうございました。

その他の回答 (1)

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

print "<form method=\"post\" action=\"delete.php?id={$data['id']}\">"; とすればよいのでは。 実際に出力されているhtmlソースを確認していますか?

NeilMania
質問者

お礼

メッセージありがとうございます。 ソースの確認は思いつきませんでした…。 今確認してみます。

関連する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を渡すというのが難しくて。。 とても分かりにくい質問だと思いますが、どうか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • <FORM ACTION= をつけると「宣言されていません」と

    <script language="javascript"> function change(tr,n) { tr.bgColor=CheckBox[n].checked?"#ff0000":"#ffffff"; } </script> 上記のコードで下記のように<form・・ を付けると「宣言されていません」とエラー表示になります。 <FORM ACTION="sample.cgi" METHOD="POST"> <TABLE BORDER="1"> <TR id="tr1"> <TD> <INPUT TYPE="CHECKBOX" NAME="CheckBox" VALUE="CheckBox" onclick="change(tr1,0)"></TD> </TR> <TR id="tr2"> <TD> <INPUT TYPE="CHECKBOX" NAME="CheckBox" VALUE="CheckBox" onclick="change(tr2,1)"></TR> </TABLE> </form> 下記だと正常です。 <TABLE BORDER="1"> <TR id="tr1"> <TD> <INPUT TYPE="CHECKBOX" NAME="CheckBox" VALUE="CheckBox" onclick="change(tr1,0)"></TD> </TR> <TR id="tr2"> <TD> <INPUT TYPE="CHECKBOX" NAME="CheckBox" VALUE="CheckBox" onclick="change(tr2,1)"></TR> </TABLE> ちんぷんかんぷんになってきました。

  • formタグのactionについて

    PHPを勉強している初心者ですが、 HTMLでつまづいています。 formタグのactionでは通常、送信先のファイルを指定すると思いますが、 action="?"と記載されています。 この場合どのような動きになるのでしょうか。 <form action="?" method="POST"> <img src="image.php?time=<?=$time?>&key=<?=$key?>"> <br> 画像の文字列:<input type=text name=image_key></td> <br> <br> <input type=hidden name=time value="<?=$time?>"> <input type=hidden name=key value="<?=$key?>"> <input type=submit value="ログイン"> <br> <hr> copyright(C) <a href="http://php.to/">http://php.to/</a> </form>

    • ベストアンサー
    • HTML
  • 一つのformで、複数のaction指定

    レイアウトなどの関係で、formの配置が基本とは異なるものになってしまい、うまく動作させる方法が見つからず困っています。 現在は <form> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> </form> …… <form method="POST" action="A.php"> <input type="submit" name="aa" value="あああ"> </form> <form method="POST" action="B.php"> <input type="submit" name="bb" value="いいい"> </form> <form method="POST" action="C.php"> <input type="submit" name="cc" value="ううう"> </form> <form method="POST" action="D.php"> <input type="submit" name="dd" value="えええ"> </form> のようになっていて、チェックボックスの値を送信したいのは、Dのボタンを押したときだけPOSTされるようにしたい状態です。 この値を取得する方法か、もしくは <form method="POST" action="(ボタンに応じたもの)"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> …… <input type="submit" name="aa" value="あああ"> <input type="submit" name="bb" value="いいい"> <input type="submit" name="cc" value="ううう"> <input type="submit" name="dd" value="えええ"> </form> このように、一つのフォームの中に埋めてしまい、actionに入る値をボタンによって分ける方法はありませんでしょうか? もしくは他の方法でも構いません。 お分かりの方がいましたら、是非ご教授お願いいたします。

    • 締切済み
    • PHP
  • FORMメソッドでvalueがうまく渡されない

    Perlで下記のようにFORMメソッドを 色々なところで使っているのですが ↓のFORMメソッドだけVALUEが渡らないのです。 print "<FORM ACTION=\"$homeurl\" METHOD=$method>\n"; print "<TABLE BORDER=1>\n"; print "<TR>\n"; print "<TD>会員番号</TD>\n"; print "<TD><TT>会員番号-</TT><INPUT type=text name=mytonum value=\"$mynum\"></TD>\n"; print "</TR>\n"; print "<TR>\n"; print "<TD COLSPAN=2>\n"; print "<INPUT TYPE=SUBMIT VALUE=\" 基本情報 \">\n"; print "<INPUT TYPE=hidden NAME=mynum VALUE=\"$c_mynum\">\n"; #非表示。クッキー用 print "<INPUT TYPE=HIDDEN NAME=mycmd VALUE=write2>\n"; print "</TD>\n"; print "</TR>\n"; print "</TABLE>\n"; print "</FORM>\n"; それで改変したのが↓です。 こちらはボタンを押したらちゃんと値が渡りました。 ただ、予定した位置にテキストボックスが表示されず別の位置に表示されそれも困っています。 上の表記はどこが間違っているのでしょうか? print "<FORM ACTION=\"$homeurl\" METHOD=$method>\n"; print "<TABLE BORDER=1>\n"; print "<TR>\n"; print "<TD>編集先の会員番号</TD>\n"; # print "<TD><TT>会員番号-</TT><INPUT type=text name=mytonum value=\"$mynum\"></TD>\n"; #コメントにして・・・ print "</TR>\n"; print "<TR>\n"; print "<TD COLSPAN=2>\n"; print "<INPUT TYPE=SUBMIT VALUE=\" 基本情報 \">\n"; print "<INPUT TYPE=text NAME=mynum VALUE=\"$mynum\">\n"; #こちらtypeを変更→OK ~~以下上記同じ~~

  • データーベースをフォームから入力し更新

    データーベースをフォームから入力し更新 登録済のデーターベースをフォームから入力し更新したいのですが、どうしてもうまくいきません。 http://park18.wakwak.com/~little-box/Dreamweaver/sql010.htm のサイトを参考にしているのですがitiran.phpのところからつまづいています。 // 検索した結果を全部表示 echo "<table border=1>"; echo "<tr><td>id</td><td>name</td></tr>"; while($row=mysql_fetch_array($res)){    echo "<tr>";    echo "<td>". $row["name"] . "</td>";    echo "<td>". $row["age"] . "</td>";    echo "<form action=koushin_input.php method=post>";    echo "<input type=hidden name=id value=" . $row["id"] . ">";    echo "<td><input type=submit value=更新></td>";    echo "</form>";    echo "<form action=sakujo.php method=post>";    echo "<input type=hidden name=id value=" . $row["id"] . ">";    echo "<td><input type=submit value=削除></td>";    echo "</form>";    echo "</tr>"; } echo "</table>"; の辺りがおかしいのではと思っているのですが… アドバイスください。また、他に参考になるサイトがありましたらぜひ教えてください。

    • ベストアンサー
    • PHP
  • form要素とtable要素

    元はこちらです。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1483846324 <table> <tr><td><input form="form1" type="text" value="text1"></td></tr> <tr><td><input form="form1" type="submit" value="submit1"></td></tr> <tr><td><input form="form2" type="text" value="text2"></td></tr> <tr><td><input form="form2" type="submit" value="submit2"></td></tr> </table> <form id="form1" action="cgi1.cgi" method="POST"></form> <form id="form2" action="cgi2.cgi" method="POST"></form> 上記はHTML5の仕様に従って書いていますが、これを、HTML4.01の仕様に反さないように書くと、どの様にすればいいのでしょうか。 添付画像は、実際のテーブルの様子です。

    • ベストアンサー
    • HTML
  • formタグ

    HTMLで、formを使用し、CGIへテキストエリアのデータをpostしたいと 考えております。 テキストエリアを3つ、ボタンを1つ設けるならば 通常以下のようにすると思います。(必要部分の抜粋) <form action="foo1.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行"> </form> こうすると、実行ボタンをクリックすると、text1、text2、text3のテキストエリアに 記述されているテキストが送信されますが、ここにボタンをもう一つ設け、 上記3つのデータを別のCGIに送信したいのですが、 この場合どのようにHTMLを記述したらよいでしょうか? 新たに下記のようにformタグを設けると、テキストエリアは6つになってしまいますし。。。 <form action="foo2.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行2"> </form> どなたか分かる方情報頂けますか。

    • ベストアンサー
    • HTML
  • formの中で別のactionをもったsubmitボタンの設置。

    formの中で別のactionをもったsubmitボタンの設置。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>sample</title> <script language="JavaScript" type="text/javascript"> <!-- //<クリックした時に実行される関数> //*** 送信画面 function func1(form){ document.form1.text.value =form.text.value; document.form1.file.value =form.file.value; document.form1.dummy.value =form.dummy.value; document.form1.submit(); } //*** ユーザー追加画面 function func2(form){ document.form2.text.value =form.text.value; document.form2.file.value =form.file.value; document.form2.dummy.value =form.dummy.value; document.form2.submit(); } //--> </script> </head> <body class="index"> <form enctype="multipart/form-data"> <table id="table" width="100%"> <tr><th width="10%">テキスト</th><td><input type="text" name="text"> <br /> <div style="text-align:left;"> <input type="button" onClick="func2(this.form)" value="テキスト確認"> </div> </td></tr> <tr><th width="10%">添付</th><td><input type="file" name="file"></td></tr> </table> <div style="text-align:left;"> <input type="button" onClick="func1(this.form)" value="確認"> </div> </form> <!-- sousin.php画面へ --> <form method="post" name="form1" action="sousin.php" enctype="multipart/form-data"> <input type="hidden" name="text"> <input type="hidden" name="file"> <input type="hidden" name="dummy"> </form> <!--- text.php画面へ ---> <form method="post" name="form2" action="text.php" enctype="multipart/form-data"> <input type="hidden" name="text"> <input type="hidden" name="file"> <input type="hidden" name="dummy"> </form> </body> </html> 上記のように記述し、フォームの中に別のactionをもったsubmitボタンを設置しました。 textの内容は渡せるのですが、添付したいファイルを渡すことができません。 添付ファイルも渡せるようにするにはどうすればよいのでしょうか

    • ベストアンサー
    • HTML
  • Formを使ったPHP間での受け渡しについて

    いつもお世話になっています。 PHP間での変数の受け渡しで・・ <form action="<?= test.php ?>" method="POST">   <input type="hidden" name="id" value="aaa"/>   <input type="submit" name="submit" value="送信"> </form> と記述するとtest.phpには渡したいaaaが渡されるのですが、 これだとsubmitを押さないと渡せないため困っています。 したいことをまとめると、submitを使わずにページが表示されたら スグに変数が渡されるようにしたいです。 いろいろ試してみましたが、力不足で出来ませんでした。 宜しくお願いします!

    • ベストアンサー
    • PHP