ver.1サポートサイト


マスタDBをプルダウン表示

最終更新日:2023年02月22日

スパイラル内にあるDB内のデータをフォーム上へプルダウン形式で表示をさせるサンプルプログラムです。

PHP部分はスパイラルの内部呼出しを想定している為、アカウント内APIの利用が可能です。

アカウント内APIを利用しない場合はsetApiTokenTitle等を用いてご記載ください。

PHP部分

※アカウント内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();
?>
<?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>