• 締切済み

質問:PHP&mysqlで、選択したcheckboxを次画面で表示させたい

(1)DB内を検索 (2)DBアクセスし、検索結果を画面(1)で表示。(ループです)その際、checkboxを左につける。 (3)チェックされたレコードを画面(2)で再表示。 (2)の画面でレコード取得&checkbox <table class="TEBLE" border="1" width="100%"> <tr><th align="left"> </th> <th align="left">upload日</th> <th align="left">ファイル種別</th> <th align="left">ファイル名</th> <th align="left">作成日時</th> <th align="left">サイズ</th> </tr> <? while($rows = mysql_fetch_assoc($result)): ?> <tr> <td><input type="checkbox" name="ck_del[]"VALUE="<?= $rows ?>"></td> <td><?= $rows[upload_YMD] ?></td> <td><?= $rows[upload_FILE_TYPE] ?></td> ・・・・・・・・ <? endwhile; ?> これで検索結果は表示できました。でもvalueの値が間違っているようなきがしますが...全部の値をcheckboxでもって行こうという考えが無理ですか??? 受け取る画面 <?php $ck_del = $_POST["ck_del"]; foreach($ck_del as $rows){ ?> <tr><td><?= $rows[upload_YMD] ?></td> <td><?= $rows[upload_FILE_TYPE] ?></td> ・・・ </tr> <? }; ?> こんな感じで書いたんですが表にはAという英文字しか 表示されなくて困っています。どなたかおわかりの方がいらっしゃるならご教授お願いします。 またもっといい書き方がありましたら教えてほしいです。

みんなの回答

  • oni_
  • ベストアンサー率0% (0/1)
回答No.2

name="ch_del[]" とやってるから $_POST["ck_del"]で参照するのは無理じゃないか? ちなみに 前の人の回答にちょっと追加で 検索結果表示にちょっと手入れ <td><input type="checkbox" name="ck_del[]"VALUE="<?= $rows ?>"></td> ↓↓↓↓↓↓↓↓↓↓↓↓ <td><input type="checkbox" name="ck_del"VALUE="<?php implode(",",$rows) ?>"></td>

roba1234
質問者

補足

name="ck_del[]"これは配列を渡すつもりでやりましたけど...<? while($rows = mysql_fetch_assoc($result)): ?><---このループを実行してDBの検索結果を表示ながら左にチェックボックスをつけて表示したいです。そこでチェックボックスのVALUEに配列の値をつけてPOSTで渡してまたループを実行してチェックしたものだけ次の画面に表示してやろうと思いましたがなかなかうまく行かないです。↑↑↑↑↑↑↑↑私の考えでした。もしまちがっているなら正しい考え方を教えてもらえないですか??よろしくお願いします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

さすがに <input type="checkbox" name="ck_del[]"VALUE="<?= $rows ?>"> は乱暴すぎるでしょう。 PHPのオブジェクトをhtmlで引き継ごうとしています? そこで考えてみたんですが こんな風に、カンマ区切りでvalueを渡してやれば ご希望のケースも対応できないこともないかと。 <?PHP if($_POST["ch_del"]){ foreach ($_POST["ch_del"] as $key=> $val){ $_POST["ch_del"][$key]=split(",",$val); } print "<pre>"; print_r($_POST); print "</pre>"; } print <<<eof <form action=$PHP_SELF method=post> <input type="checkbox" name="ch_del[]" value="20060101,aaaa"> <input type="checkbox" name="ch_del[]" value="20060801,bbbb"> <input type="checkbox" name="ch_del[]" value="20061001,cccc"> <input type="submit" value="送信"> eof; ?>

roba1234
質問者

補足

ご教授ありがとうございます。他人のコードを拝見しながら自分で模索しているものなので、思いついたのがこんな方法しかなかったんです。完成したい機能はDB検索結果を表示するとき行ごとにcheckboxを付けます。さらにその画面でチェックをしたものだけ次の画面に持っていって表示させたいです。そこでなんですがほかにいい方法がありましたら教えてもらえないですか?すみません!未熟なもので説明とか下手でお手数をおかけしました。

関連するQ&A