###やりたいこと
DBから引っ張ってきたデータを修正用のフォームに反映させ、セレクトボックスで修正する。
その際に、項目が当然出るのはもちろんだけど、そのデータでselectedしておきたい。
###現在のコード(おおまかに)
PHP
1[index.php] 2<form action="" method="POST"> 3// 検索条件の選択 4</form> 5<div id="result"> 6<?php update_select() ?>
PHP
1[controller.php] 2function update_select() { 3$id = $_POST['id']; 4$row = update_select_db(); 5$name = $row['name']; 6$dakoku_id = $row['dakoku_id']; 7$dakoku = $row['dakoku']; 8$timedate = $row['timedate']; 9echo "<table>" 10// <thead>部分は省略します 11echo "<tbody><tr><td>" . $name . "</td> 12<td>" . $dakoku . "</td></tr></tbody></table>";
DBの部分は要らないですかね?
情報自体は引っ張ってきているので、表示方法の部分での質問になりますので、、、
###その他情報
dakoku_id = 19のidと出勤などの名称を登録したテーブル(A)から抜き出しています。9のいずれかが入っています。
dakoku = テーブル(B)から抜き出しています。当然これだけの結果なら1
上記をINNER JOINでdakoku_id = dakokuで結合して抽出しています。
###最終的にやりたい形
HTML
1<select name="update_dakoku"> 2<option></option> // 空白を一応 3<option value="1">出勤</option> 4<option value="2">退勤</option> 5<option value="3">休憩入</option> 6<option value="4">休憩戻</option> 7<option value="5">○○</option> 8<option value="6">××</option> 9<option value="7">△△</option> 10<option value="8">□□</option> 11<option value="9">@@</option> 12</select> 13 14<!-- で、例えば、抽出したデータが 15dakoku_id = 3 16dakoku = 休憩入だったら --> 17 18<select name="update_dakoku"> 19<option></option> // 空白を一応 20<option value="1">出勤</option> 21<option value="2">退勤</option> 22<option value="3" selected>休憩入</option> <!-- データに合わせてselected --> 23<option value="4">休憩戻</option> 24<option value="5">○○</option> 25<option value="6">××</option> 26<option value="7">△△</option> 27<option value="8">□□</option> 28<option value="9">@@</option> 29</select>
controller.phpの$dakokuの部分をこのような感じで表示させたいのですが、どのようにしたら簡単でしょうか?
そこはそこで関数にするほうが見やすいかもしれないので、そこはそこでfunction化はできます。
###最後に
効率などの問題的に、これでは効率が悪いかもしれませんが、現在ゴリゴリ書くけど処理を分けてみるというところに重点を置いているので、このような感じになっております。
処理分けに関しては今回は質問ではありません。
###結果
どうも、書き方の問題かもしれませんが、回答いただきました部分で変更してみたところ、どうもうまくいきませんでした。。。。
とりあえず、dakokuマスターのテーブルを引っ張ってくれば、selectBoxは作成できました。
それからのselectedですが、がりがり書いて、非効率かとは思いますが、、、
PHP
1if (dakoku_id == em_id) { 2print("<option value=\"$em_id\" selected>$dakoku_name</option>"); 3} else { 4print("<option value=\"$em_id\">$dakoku_name</option>"); 5}
というので、動作しました。。。
回答いただきまして、大変ありがとうございます!
教えていただいた書き方については、またいろいろ書いてみて動作等確認して行こうと思います。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/25 00:02