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アプリなら実用になる。
以上。