20220127のHTMLに関する記事は1件です。

VaccImage SQLを如何にHTML側に反映させるか

今回は、部署の入力ページについて。 患者さん、職員、職員家族などの分類のみならず。 外来なのか、入院ならどこの病棟なのか、どこの部署の所属職員なのか。 分類というものが必須です。 そこで、下記を作りました。 CREATE TABLE departments ( dpts_symbol VARCHAR(120) NOT NULL, dpts_name VARCHAR(120) NOT NULL, PRIMARY KEY(dpts_symbol) ); 簡単ですね。 部署のシンボルをプライマリーキーにしました。 患者登録のページから、当然ながら患者のみならず職員について、部署を入れないといけませんよね。 部署については、下記SQLにあります。 select * from departments; +-------------+-----------+ | dpts_symbol | dpts_name | +-------------+-----------+ | gairai | 外来 | | kensa | 検査科 | | qq | 救急 | | ward3B | 3B病棟 | | ward4A | 4A病棟 | | ward4B | 4B病棟 | | ward5F | 5F病棟 | +-------------+-----------+ のような形式です。シンプルですね。 なお部署名は架空のものですよ。 部署入力ページのHTMLを示すと、 <tr> <td>所属部署</td> <td><select name="dpts_symbol"> <option value=""></option> <option value="gairai">外来</option><option value="kensa">検査科</option><option value="qq">救急</option><option value="ward3B">3B病棟</option><option value="ward4A">4A病棟</option><option value="ward4B">4B病棟</option><option value="ward5F">5F病棟</option></select> </td> </tr> のようになっているのですが。部署を変更するたびに、HTML側をいじるのは面倒ですよね。これがVer1での課題でした。 これに対してどう対処したか、というのが下記のPHPのCodeです。 まず下記の関数を作りまして、、、 function funcListMake(string $a, string $b, string $c): void { $db = getDb(); $sql = $a; $stt = $db->prepare($sql); $stt->execute(); foreach($stt as $row) { echo '<option value="', h($row[$b]) , '">'; echo '', h($row[$c]) , '</option>'; } }; PHPファイルで、実際には以下のように書きます(HTMLを部分的に取り上げています)。 <tr> <td>所属部署</td> <td><select name="dpts_symbol"> <option value=""></option> <?php funcListMake('SELECT * FROM departments;', 'dpts_symbol', 'dpts_name'); ?> </select> </td> </tr> すると、再掲しますが、 <tr> <td>所属部署</td> <td><select name="dpts_symbol"> <option value=""></option> <option value="gairai">外来</option><option value="kensa">検査科</option><option value="qq">救急</option><option value="ward3B">3B病棟</option><option value="ward4A">4A病棟</option><option value="ward4B">4B病棟</option><option value="ward5F">5F病棟</option></select> </td> </tr> のようになります。 理屈は簡単ですね。 SQLから読み取ってきて、配列を用いて並べているだけです。 皆さんはどのように対処しているのでしょうか? 何冊か書籍も参考にしたのですが、リストがSQLにあっても直接HTMLに記載しているものばかりでしたがどうなのでしょう。 この関数があるだけで、SQL側をいじると自動的にHTML側が変更されるので便利ですよね。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む