QuictyによるPHP Webアプリの超高速開発-(4)select_from_tableによるプルダウンメニュー
5月 13th, 2008
Qyuctyデータセットに用意されている「select_from_table」型を使うと、ほかのデータセット(テーブル)のデータをプルダウンメニューの選択肢として使用できる。
「(3)selectフォームによるプルダウンメニュー」では、retaurantテーブルに店名と料理の種類の両方のフィールド(カラム)を作ってしまったが、ここでは料理名は別のテーブルcategoryに設定し、料理ID(category.id)だけをrestaurantテーブルに格納する仕様にする。
これによって、料理名の変更や追加などのメンテナンスが容易になる。
今回は、以下のページとデータセットを作成する。
| データセット | マスタメンテページクラス | ページクラスモジュール |
| restaurant | restaurant | index.class.php |
| category | category | category.class.php |
各データセットは以下のように設定する
restaurantデータセット
| Name(カラム名) | タイトル | DB型 | Quicty型 |
| id | - | int | id |
| name | 店名 | text | text |
| category_id | 料理の種類 | text | select_from_table |
categoryデータセット
| Name(カラム名) | タイトル | DB型 | Quicty型 |
| id | - | int | id |
| name | 店名 | text | text |
サンプルコード:restaurant02.zip
展開したrestaurant02フォルダをQTフォルダの中において、「アプリケーションの読み込み」で読み込んでください。
ご注意:このブログのサンプルコードは、シングルクオートやダブルクオートなどがスマートクオートに変換されているため、コピペしてもそのままではエラーになることが多いです(エディタによる)。
なるべく、サンプルコードをダウンロードしてご利用ください。
アプリの登録
Qtビルダーのトップページで「アプリケーションの追加」をクリック。
サイト名「レストラン02」
Name「restaurant02」
で登録。

ページとデータセットの追加
「restaurant02」の設定画面を開き、「トップページに機能を追加」をクリック。

タイトル「レストラン」
Name「restaurant」
ページの種類「マスタメンテ/マルチページ」
で登録。

トップページに「restaurant」が設定され、データセット「restaurant」ができている。
続けて「ページを追加」をクリック。

タイトル「料理の種類」
Name「category」
ページの種類「マスタメンテ/マルチページ」
で登録。

データセット一覧から「category」をクリック。

text型のフィールドを追加する。
タイトル「料理名」
Name「name」
で登録。
完了したら、テーブル関連設定ファイルを保存し、テーブルの作成を実行する。

次にデータセット「restaurant」に戻り、text型フィールドを追加。
以下の画面は
タイトル「店名」
Name「name」
で登録した結果。

同じくデータセットrestaurantに、今度は「select_from_table」型を追加。

タイトル「料理の種類」
Name「cartegory_id」
value=>(key=>value)は、以下のように設定。
_TABLEの右の欄を「category」
残りは変更なしで、登録。

データセット「restaurant」に「店名」と「料理の種類」の2つのフィールドが登録された状態。
テーブル関連設定ファイルを保存し、テーブルの作成を実行する。

アプリケーション「restaurant02」の動作確認
restaurant02を開き、右のメニューから「料理の種類 追加」をクリック。

料理名に「和食」を登録。

同様に、「西洋料理」「中華料理」も登録。

右メニューから「レストラン追加」をクリック。
店名を入力し、料理の種類を選択。

ほかの店も登録して、更新や検索ができるか確認する。

この程度の機能なら、PHPのコーディングなしで実現できる。
ただ、内部的な処理は効率が良くないので、大規模サイトには向かないが、小規模なグループで使うWebアプリなら実用になる。
以上。














