Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。次に、上で取得したデータをアンケートフォームに展開していくことになります。ここでのポイントの一つに、上の3で取得した関連データのフィールド「回答種類」のデータを、Webページで選択形式(ラジオボタン)で表示するように処理を行う必要があります。回答種類のデータは改行ごとに回答データが登録されている形になっていますので、PHPのexplode関数を使って、改行区切りで配列データに変換し、ラジオボタンに展開するようにします。Webページでこの処理が簡単に行えるように、カスタム関数を作ります。「index.php」の上の方に記述しましょう。text/html;charset=utf-8");//フィールドデータを値一覧にするための関数。//展開するデータと、フォーム名を引数に渡す。//改行コードを区切りにして配列に収める。//配列に収めたデータを、ラジオボタンとして出力。}}//APIのインクルードinclude_once('FileMaker.php');関数changeRadioに、改行を含むフィールドのデータと、Webフォームにセットするフォーム名の値を引数で渡すようにします。フィールドのデータをexplode関数を使って改行区切りで配列に変換します。配列に変換されたフィールドのデータ$valueListを、foreach関数を使って個々に取り出し、Webフォームのラジオボタンにして出力します。その1次に、アンケートフォーム画面「enquete.php」のコーディングです。この画面が実際にユーザーに表示される画面となります。フォームの上半分タイトルやリードなどを表示する箇所からです。value="'.$sex.'">'.$sex;}?></p>Webページのタイトルと見出し・リードに、FileMakerから取得したフィールドの値をレコードクラスのgetField()関数を用いて表示させています。引数でフィールド名を指定します。このgetField()関数は、フィールドのデータにサニタイズ処理がされており、HTMLタグなどが変換されて表示されるようになっていますので(PHPのhtmlspecialchars関数を適用)、フィールドデータにHTMLタグが含まれていてもセキュリティ上問題になることはございません。フィールド内のHTMLタグなどをそのまま画面上に表示させたい場合は、getFieldUnencoded()関数を利用します。このアンケートフォームの値を、「receive.php」に送信して処理をするようにformタグの値をセットします。このアンケートフォームからFileMakerに送信される値は、[氏名]、[年代]、[性別]([質問明細No]、[回答])×質問の数、となります。[氏名]、[年代]、[性別]は回答見出しテーブルに登録し、[質問明細No]、[回答]は回答明細テーブルに登録するようにします。取得した年代と性別のデータを、foreach関数を使ってプルダウンやラジオボタンに展開します。その2次は、質問と回答の表示部分です。(1)//ソース4の続き。//質問と回答のデータを質問の数だけ展開する。//引数にしてラジオボタンに展開する。/></p></form></body></html>関連データのレコードオブジェクトの配列として返ってきているので、foreach関数を使ってそれぞれ個々のレコードのデータを取り出します。getField()関数を使ってフィールドの値を取り出します。フィールド名を指定する際は、テーブル名::フィールド名という正式名称で指定します。複数ある質問と回答のデータをFileMakerへの登録の際に処理しやすくするため、フォーム名を配列形式にセットします。登録先の回答明細の明細Noフィールドにはアンケート質問テーブルの質問No、回答明細の回答フィールドには、回答種類のデータをセットするようにします。その際のフォーム名は、明細Noは「質問回答[質問No][no]」、回答は「質問回答[質問No][value]」という形になるようにします。これにより、配列質問回答には、質問No分のデータがセットされ、さらにその中に明細Noと回答のデータがセットされるようにします。次のような形になります。))上で作成したchangeRadioという自作関数を使い、フィールドのデータをラジオボタンに展開するようにします。フォーム名は配列形式になるようにしています。以上でアンケートフォームの画面は終了です。レコードの検索に成功してアンケートデータを展開した場合の画面イメージは次のようになります。次に、アンケートの検索が失敗した場合のエラー画面を作成します。/><title>WEBアンケート</title></head><body><h1>WEBアンケート</h1><p>現在募集しているアンケートはございません。(<?=$error_mes?>)</p></body></html>エラーページにメッセージを表示させています。アンケートフォームアクセス時に、対象のアンケートがない場合のエラー画面のイメージは次のようになります。以上で、アンケートフォームの表示部分は終了です。次回について次回は、このフォームデータからのFileMakerへの登録処理、そして回答データの集計処理の作り方を解説します。ナオキ)大学卒業後入社の企業にて、趣味のFileMaker使いからなりゆきで社内のシステム担当となり社内システムの開発に孤軍奮闘する。その後ソフトハウスに転職してFileMakerによるシステム開発に従事し、現在は株式会社キクミミにて数々の企業のシステムを開発する。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。