• 締切済み

リスト表示からのボタンアクションに関して

漠然とした質問で申し訳ありませんが、教えて下さい。 あるDBからデータを検索したものをリスト表示し、その情報に対して 変更ボタンや削除ボタンを設けて、アクションを起こしたいと考えて いますが、PHPでそのようなケースはどんな記述をするのが適切で しょうか? PHPの場合、例えば1行毎に変更ボタンや削除ボタンを設けたとし ても、同じ情報を2のファイルへ送信できないかと思われます。 それぞれの行にチェックボックスを設けてそこへチェックが入った ものを変更、更新するとか。。。。 できればサンプルなんかも頂ければ幸いです。 よろしくお願いします。

みんなの回答

noname#151014
noname#151014
回答No.3

DBはポスグレですが・・・ $sql = "SELECT id,name FROM t_hoge ORDER BY id;"; $result = pg_exec($sql); $rows = pg_numrows($result); $columns = pg_numfields($result); echo "<table border=1>"; for ($j=0; $j<$rows; $j++) { echo "<tr>"; echo "<form name=form1 method=post action=modify.php>"; $id = pg_result($result,$j,0); $name = pg_result($result,$j,1); echo "<td>".$id."</td>"; echo "<td>".$name."</td>"; echo "<td><input type=submit value=変更></td>"; echo "</form>"; echo "<form name=form2 method=post action=delete.php>"; echo "<td><input type=submit value=削除></td>"; echo "</form>"; echo "</tr>"; } echo "</table>";

すると、全ての回答が全文表示されます。
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

> 同じ行に対し削除もしたい場合、更新ボタンの横に削除ボタン <input type="submit" name="update" value="更新" /> <input type="submit" name="delete" value="削除" /> if (!empty($_POST['update'])) {  ; } elseif (!empty($_POST['delete'])) {  : }

SANA_999
質問者

お礼

ありがとうございます! 大変参考になりました。

すると、全ての回答が全文表示されます。
回答No.1

<? while($Row = mysql_fetch_array($result, MYSQL_ASSOC)){ ?> <td width="15%" align="center"><?= htmlstr($name) ?></td> <td width="10%" align="center"><?= htmlstr($age) ?></td> <td width="10%" align="center"><?= htmlstr($zip) ?></td><form action="./detail.php" method="POST"> <input type="submit" value="更新" /> <input type="hidden" name="month_start" value="<?=$month_start ?>" /> ・・・・・ <? } ?> このようにformをデータの件数分繰り返します。 DBはMYSQLですが・・・。

SANA_999
質問者

補足

頂いたサンプルの場合、確かに1行ずつ更新ボタンが設けられ、 1行毎にデータが更新処理がされるかと思われますが、同じ行に 対し削除もしたい場合、更新ボタンの横に削除ボタンは設けられ ないですよね。。。 何かいい手はないでしょうか。。。

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

関連するQ&A

  • 複数のテキストボックスに対する入力チェック

    こんにちは。PHPでDBのテーブル内容変更画面を作成しています。PHPでDB内のデータを取得し、それをwhileで列数分回してテキストボックスの中に表示させ、その中身を変えて変更ボタンを押せば変更、削除ボタンを押せば削除したりできるような画面です。 変更(UPDATE)にあたってJavaScriptで入力チェック(空欄チェックとバイト数チェック)をかけたいのですが、1行だけしか出力されない(=DBテーブル内にデータが1行分しかない)場合にはチェックが有効なのですが、複数行になるとチェックしてくれません。 JavaScriptでは複数行のチェック(?)には配列を使わなければならないと知りましたが、PHPのfetch関数を使って回して表示しているため、行数がいくつになるかはわかりません。行数をどうやって取得すればいいのか、ご存知の方がいらっしゃいましたらぜひご教授ください。よろしくお願いいたします。

  • 【JavaScript】ラジオボタンにより、formのaction内容

    【JavaScript】ラジオボタンにより、formのaction内容を変更したいのですが・・・。 どのラジオボタン(ここでは『A』と『B』とします)をチェックされたかにより、 <form action="(ここの部分)"> (ここの部分)と書かれたformのactionの内容を変えたいのです。 例) 『A』のラジオボタンをチェック → <form action="a.php">になる 『B』のラジオボタンをチェック → <form action="b.php">になる このようにしたいのです。 どうかよろしくお願いします。

  • 複数行表示されたリストボックスから最後の行だけ削除するには

    エクセルのユーザーフォーム上にあるリストボックスですが 必要に応じてボタンクリックでAddItemにより項目が追加されて行くリストボックスがあります この複数行表示された項目の内 別のボタンクリックで最後に追加された行だけ削除していくには どのように記述すればいいのでしょうか ------------- abcde fghij klmno pqrst ------------ と表示されていたリストボックスから クリックするたびに ------------- abcde fghij klmno ------------- ------------- abcde fghij ------------- の様に最後の行だけ削除をしたいのです 単純に ListBoX1.Clear では全て消されてしまい こまっています ぜひお力をお貸し下さい よろしくお願いします

  • フォーム内でのリストボックスなどの下三角とそのバックの色。

    昨晩 http://oshiete1.goo.ne.jp/kotaeru.php3?q=351693 という質問をし、テキストボックスや、送信ボタンなどは変更できました。 さらに、リストボックスなどの右の下三角やそのまわり(グレー部分)の 変更と、ラジオボタンも変更できたら・・・と欲張ってきました。 ラジオボタンはできなくてもいいのですが、リストボックスはぜひ変えたいの です。 何か方法はありますか?

  • AjaxでDBから取得したデータをリスト表示したいです

    AjaxでDBから取得したデータをリスト表示したいのですが、 successの部分にどのように記述したらいいのかが分かりません。 PHPからjason形式で配列で戻せればと思っています。 htmlには n行3列の形で縦長になる形のリストをDOMで表示(になるんですかね?)を考えています。 よく分からないので教えて下さい。

  • フォームでボタンクリック後にそのページに内容を表示する

    a.htmというファイルの中でフォームを使用しています。 フォームで送信のボタンを押すとフォームの内容を反映した文をphpを使用してb.phpに表示させています。 送信ボタンを押すとb.phpのページに飛んでしまいますが、a.htmの送信ボタンの次の行くらいにb.phpの内容を表示させるようにしたいです。 どのように記述すればできるでしょうか?

  • リストボックスの項目の順番をボタンで上下に変更させたい。

    リストボックスにならぶ項目をボタンを押して上下に移動させ、 並べ替えられるようなアクションが可能ならば教えていただけないでしょうか?

  • 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"> <!-- //<クリックした時に実行される関数> //*** 確認画面A function func1(form){ document.form1.check[].value =form.check[].value; document.form1.submit(); } //*** 確認画面B function func2(form){ document.form2.check[].value =form.check[].value; document.form2.submit(); } //--> </script> </head> <body class="index"> <form enctype="multipart/form-data"> <input type="check" name="test[]" value="0">0 <input type="check" name="test[]" value="1">1 <input type="check" name="test[]" value="2">2 <input type="button" onClick="func2(this.form)" value="確認B"> <input type="button" onClick="func1(this.form)" value="確認A"> </form> <!-- sousin.php画面へ --> <form method="post" name="form1" action="sousin.php" enctype="multipart/form-data"> <input type="hidden" name="check[]"> </form> <!--- text.php画面へ ---> <form method="post" name="form2" action="text.php" enctype="multipart/form-data"> <input type="hidden" name="check[]"> </form> </body> </html> 上記のように記述し、フォームの中に別のactionをもったsubmitボタンを設置しました。 チェックボックスで何と何がチェックされたかを渡したいのですが、エラーが発生します。 おそらくjavascript内の構文でcheck[]と記述してるからだと思いますが、 どのようにすれば受け渡すことができるのでしょうか。 checkのみにすると1つの値しか渡せません。

    • ベストアンサー
    • HTML
  • submitボタン無しでページ(~.php)が読み込まれるだけでactionが実行されるやり方を探しています

    ちょっと忘れてしまった方法を教えていただきたいです。 通常は<form action "aaa.php">でフォーム送信処理等を行うかと思いますが、submitボタン無しで~.phpページが読まれるだけで ~.phpページ内のPOSTアクションがかかる方法が(おそらくpearで)あったと思います。 その方法を教えてください。

    • ベストアンサー
    • PHP
  • VBとリストボックス

    こんにちわ。 いまVB6.0sp5でリストボックスに チェックボックス付きのリストを表示し, クリックで複数選択するロジックを組んでいます。 リストに表示するデータ件数がリストボックスの高さを超えるため, 横スクロールさせる必要があります。 そこで,2列目のキャプションをクリックすると, スクロールし,選択した行以外のチェックボックスが見た目, 消えてしまいます。 なお消えたチェックボックスの箇所をクリックすると, その行のチェックボックスが選択された状態で表示されます。 2列目のキャプションをクリックしたときに,ほかの行のチェックボックスを 消さないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 宜しくお願いします。

このQ&Aのポイント
  • HL3170CDWのトナー交換の表示が消えずに困っています。どのように解決すれば良いでしょうか?
  • Windows10でHL3170CDWを無線LAN接続して使用していますが、トナー交換の表示が消えません。解消方法を教えてください。
  • HL3170CDWのトナーを交換しましたが、交換の表示がまだ出てしまいます。どうすれば表示が消えるようになるのでしょうか?
回答を見る

専門家に質問してみよう