マスタDBをプルダウン表示
最終更新日:2023年02月22日
スパイラル内にあるDB内のデータをフォーム上へプルダウン形式で表示をさせるサンプルプログラムです。
PHP部分はスパイラルの内部呼出しを想定している為、アカウント内APIの利用が可能です。
アカウント内APIを利用しない場合はsetApiTokenTitle等を用いてご記載ください。
PHP部分
- アカウント内APIを利用する場合
※アカウント内APIを利用する場合は設定を「ON」に変更してからご利用ください。
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=OFF NAME=TEST --> ?>
<?php
// 店舗リストテーブル(shopList)から選択肢一覧を取得します。
// 店舗リストテーブルには、code、nameの2つのフィールドを設定しています。
// code・・・店舗コード(ユニーク制約)[フィールドタイプ:数字・記号・アルファベット(32 bytes)]
// name・・・店舗名[フィールドタイプ:テキストフィールド(64 bytes)]
$selectdb = $SPIRAL->getDataBase("shopList");
$selectdb->addSelectFields("code", "name");
$selectdb->addSortField("code");
$searchResult = $selectdb->doSelect();
?>
- setApiTokenTitleを利用する場合
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=OFF NAME=TEST --> ?>
<?php
// 店舗リストテーブル(shopList)から選択肢一覧を取得します。
// 店舗リストテーブルには、code、nameの2つのフィールドを設定しています。
// code・・・店舗コード(ユニーク制約)[フィールドタイプ:数字・記号・アルファベット(32 bytes)]
// name・・・店舗名[フィールドタイプ:テキストフィールド(64 bytes)]
$SPIRAL->setApiTokenTitle("sample");
$selectdb = $SPIRAL->getDataBase("shopList");
$selectdb->addSelectFields("code", "name");
$selectdb->addSortField("code");
$searchResult = $selectdb->doSelect();
?>
HTML部分
<!DOCTYPE html>
<html id="SMP_STYLE">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>店舗選択</title>
</head>
<body class="body">
<center>
<div class="body_tbl">
<h1>店舗選択</h1>
<!--SMP:DISP:REG:START-->
<p class="header_rmesg">必要事項をご入力の上、送信ボタンを押してください。</p>
<!--SMP:DISP:REG:END-->
<!--SMP:DISP:ERR:START-->
<p class="header_emesg">ご入力内容に不備がございます。エラーが発生した項目を修正し、送信しなおしてください。</p>
<!--SMP:DISP:ERR:END-->
<form method="post" action="/regist/Reg2">
<div class="smp_tmpl">
<dl class="cf">
<dt class="title">
メールアドレス <span class="need">*</span>
</dt>
<dd class="data ">
<input class="input $errorInputColor:mail$" type="text" name="mail" value="$mail$"
maxlength="129">
<br>
<span class="msg">$error:mail$</span>
</dd>
</dl>
<dl class="cf">
<dt class="title">
選択店舗 <span class="need">*</span>
</dt>
<dd class="data ">
<?php
//取得した店舗リストを使ってプルダウンを生成します。
// フォームの登録先テーブルには、mail、shopの2つのフィールドを設定しています。
// mail・・・メールアドレス[フィールドタイプ:メールアドレス(大・小文字を無視)]
// shop・・・選択店舗[フィールドタイプ:数字・記号・アルファベット(32 bytes)]
$list = $searchResult["data"];
echo "<select name='textfield32'>\n";
echo "<option value=''>選択してください</option>\n";
foreach ($list as $select) {
$code = $select["code"];
$name = $select["name"];
$check = ($code == $SPIRAL->getParam("shop")) ? "selected" : "";
echo "<option value='" . htmlspecialchars($code, ENT_QUOTES) . "' " . $check . ">" . htmlspecialchars($name, ENT_QUOTES) . "</option>\n";
}
echo "</select><br>\n";
?>
<span class="msg">$error:shop$</span>
</dd>
</dl>
</div>
<input type="hidden" name="detect" value="判定">
<!-- HIDDEN_PARAM START -->
$form:hidden$ <!-- HIDDEN_PARAM END -->
<input class="submit" type="submit" name="submit" value="送信">
</form>
</div>
</center>
</body>
</html>