- ベストアンサー
PHPで詳細表示について
- PHPを使用して作業履歴管理台帳を作成中ですが、詳細データの表示方法に困っています。
- 具体的には、対象者のIDを入力すると、対象の作業履歴を表示する処理です。
- 現状では、対象者を一覧で表示して手動でIDを選ぶ必要があり、対象者数が多いと面倒です。解決策を教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
javascriptを使用してはだめですか?? naktakさんと同じなのですが、 (1)の対応について、javascriptを分けた感じです。 <html> ↓ 追加 <script type="text/javascript"> <!--// /* menber_listの値をid_numberに設定 */ function setIdNumber(menberList{ document.myForm.id_number.value = menberList; // すぐにform_bに飛ばすのであれば、下のコメントをはずしてください。 //document.myForm.submit(); return; } //--> </script> ↑ ここまで <head> <title>login</title> </head> <body> <form action="form_b.php" method="post" name="myForm"> formタグに name="myForm"を追加 <input type="text" name="id_number"> <input type="submit" name "bottun" value="実行"> <br> </form> ↓ naktakさんの回答を参考にPHPでリストを表示する際にaタグをつけて処理してください。 <a href="javascript:setIdNumber('menber_list1');">menber_list1</a> <a href="javascript:setIdNumber('menber_list2');">menber_list2</a> <a href="javascript:setIdNumber('menber_list3');">menber_list3</a> <a href="javascript:setIdNumber('menber_list4');">menber_list4</a> <a href="javascript:setIdNumber('menber_list5');">menber_list5</a> ↑ここまで </body> </html>
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
(1)の対応 <form action="form_b.php" method="post" name="frm"> name="frm"の追加 > <? > //DBへの接続開始 > . > . > //DB"member_list"とからデータをSELECTして表示... > ?> ここでリストを出しているでしょうから、 $id = "123"; echo '<a href="javascript:void(0)" onclick="document.frm.id_number.value=\'' . $id . '\';document.frm.submit();">' . $id . '</a>'; こんな感じに変更。 個別にjavascript記述してもいいですけどね。 あとjavascriptは使わないというならこれはナシです。 (2)は、仮に123という文字列があった時、123をダブルクリック等をしてハイライト(選択)状態にし、 それを入力エリアにドラッグ&ドロップ、その後にボタンをクリックすれば実現できます。 (3)は(1)のチェックボックス版です。 form_aで $id = "123"; echo '<label for="check_id_number"><input type="checkbox" name="check_id_number[]" id="check_id_number" value="' . $id . '">' . $id . "</label>"; というようにすれば、form_bで$cid = $_POST["check_id_number"];という記述で $cid => array(0 => 123 1 => 456 2 => 789)という配列で受け取る事が 出来るので、それをform_bで処理する事が可能です。 form_bでは、form_aでチェックされたものだけ取得されます。 form_aの変更を行った後に、form_bで一度 $id = $_POST["check_id_number"]; var_dump($id); とすれば何が取得できているか確認できます。 但し、form_aでは直接入力かチェックされたものか、どちらを優先するのかを判別する必要があります。 多分今の所、 現状の動作 (1)の動作 (3)の動作 この3つを実現出来ると楽なんでしょうね。 IDが分かる時はさっさと入力、分からない時はリンクをクリック、 複数対象者がいるならばチェックしてボタンをクリック。 件数が多いなら、名前やIDでの検索機構や、対象者となる条件での絞り込みを 行う機構も設けた方が将来の為かもしれませんね。
お礼
早速のご回答ありがとうございました。 教えて頂いた内容を参考にもう少し検討してみようと思います。
お礼
更なる詳細なご回答ありがとうございました。 どうすれば最善か?を 勉強がてらもう少し考えてみようと思います。