初めて自分の家と他人の家が違う、と意識した時

複数行のデータのPOST処理に関して

初歩的な質問で申し訳ありませんが、教えて下さい。

現在、テーブルよりデータを取得し、それを画面上にレコードとして複数表示させて
います。

但し、そのデータは更新対象である為、その中の幾つかのデータに対し修正を加え、
登録ボタンで一斉に登録したいと考えています。

単純に対象レコードが1件のみで、それのみが表示され、その内容を変更するというような
場合は、POST処理等で更新処理が簡単ですが、複数のデータが一挙に表示され、それら内の
複数が1つボタンで一挙に更新するとなるとどのようにPOST処理をすれば良いでしょうか・・・

javascript と併用して、INPUTのname を変数化してあげればなんとなくは実現可能かとは
思われますが、画面上をフラットとしたい為、INPUTはなるべく避けたいと考えています。

何か良い方法はないでしょうか。。。。

教えて下さい。

A 回答 (3件)

HTMLとして


<input type="text" name="data[]" value="aaa">
<input type="text" name="data[]" value="bbb">
のように、nameを配列型にしてしまえば、

受け取るPHP側では、$_POST['name値']を配列型で受け取れるので、上記なら、
foreach ( $_POST['data'] as $key => $value ) {
  ※$key (0,1,...) や $value(POSTされた個別値) を使った、繰り返し処理
}
のループで全データの処理が可能です。

$_POST['data'][1] で、直接取り出しも可能です。

この回答への補足

ご回答ありがとうございます。

おっしゃる通り、name属性に変数を用いる事によって実現が可能
かと思われます。

但し、その場合にはどうしてもテキスト形式となってしまうかと。。。

テキスト形式を使用しない方法としては何か考えられないでしょうか。。。

教えて頂ければ幸いです。

補足日時:2010/11/04 17:12
    • good
    • 0

もしかして、一項目毎に、<input type="text">を作るのではなく


複数レコードのデータを、1つの文字列に改行コードを挟んで連結したうえで
それを<textarea> で表示して 、そこで修正されたデータをまたバラのデータにしたいってことですか?

それなら単純に 受け取ったPOSTデータを 改行コードでexplode()で
配列に分解すばいいのでは?
    • good
    • 0

こんにちは。



テキスト方式を利用しないとなるとデータの修正はどのようにするように考えていますか?
どのような画面を想定しているか補足ください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A