検索フォームの作成
それでは、まず検索フォームを作りましょう。
ジャンルやメーカーはプルダウンで選択して検索できるようにしたいので、検索フォーム表示の際に、データベースにアクセスしてジャンルテーブルとメーカーテーブルの値を取得しておくようにします。
<?php //文字コード指定 ※1 header("Content-Type: text/html;charset=utf-8"); //APIのインクルード ※2 include_once('FileMaker.php'); //FileMakerクラスを用いてFMに接続する。 ※3 $fm = new FileMaker(); $fm->setProperty('database', 'Catalog'); $fm->setProperty('hostspec', 'http://localhost'); $fm->setProperty('username', 'web'); $fm->setProperty('password', 'pass'); //レイアウト情報を取得し、ジャンルとメーカーの値一覧のデータを取得。※4 $layout=$fm->getLayout('web_catalog'); $genres = $layout->getValueList('Genre'); $makers = $layout->getValueList('Maker'); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>カタログ検索</title> </head> <body> <h1>カタログ検索</h1> <form action="result.php" method="get"> ※5 <table> <tr> <th>商品ID</th> <td><input type="text" name="ID" value=""></td> </tr> <tr> <th>商品名</th> <td><input type="text" name="Name" value=""></td> </tr> <!--FMから取得した値一覧の値を展開 ※6--> <tr> <th>ジャンル</th> <td><select name="Genre_Name"> <option value=""></option> <?php foreach($genres as $genre){ echo '<option value="'.$genre.'">'.$genre.'</option>'; } ?> </select> </td> </tr> <tr> <th>メーカー</th> <td><select name="Maker_Name"> <option value=""></option> <?php foreach($makers as $maker){ echo '<option value="'.$maker.'">'.$maker.'</option>'; } ?> </select> </td> </tr> <tr> <th>登録日</th> <td><input type="text" name="RegistDate" value=""></td> </tr> </table> <p><input type="submit" name="_search" value="検索実行"></p> </form> </body> </html>
- 作成したPHPファイルが文字コードUTF-8で記述されていることを明示するために、PHPの
header
関数を使って文字コードを出力するようにしています。 - FileMaker API for PHPを読み込みます。
- 変数
$fm
にFileMaker
クラスのインスタンスが作成されます。setProperty
メソッドを使ってデータベース名やアカウント情報などを設定し、データベースに接続します。 FileMaker
クラスのgetLayout
メソッドを利用して、接続したデータベースのレイアウト情報を取得します。このレイアウト情報からgetValueList
メソッドを利用してフィールドに設定している値一覧などの情報を取得できます。ここでは、$genres
にFMで設定した値一覧「Genre」の値の配列が入り、$makers
に「Maker」の値の配列が入ります。- フォームの送信方法をGETにします。検索結果をページ分割して表示する際に、検索条件の引き継ぎの処理の記述がシンプルになります。
- 取得した値一覧のデータ、
$genres
と$makers
をforeach
関数を使ってプルダウンリストとして展開します。
作成したファイルにアクセスしてみます。
http://【serverIP】/catalog_search/search.php
実行した結果のイメージは次のようになります。