質問

投稿者:M
登録日:2026年1月13日(火)

店舗マスタをAPIで取得し、コードと名称を連動させる方法について

取引支店(コード+名称)の入力欄の実装について質問です。 やりたいことは以下の2点です。 ① 店舗マスタDBの内容をセレクトボックスに表示したい PHPで作成したAPIを使い、店舗マスタDBから 「店舗コード・店舗名」を全件取得し、 画面表示時にセレクトボックスへ一覧表示したいと考えています。 画面読み込み時にAPIを呼び出し、 取得したデータをセレクトボックスに反映する方法について 実装例や考え方をご教示いただけないでしょうか。 ② テキストボックスとセレクトボックスを連動させたい 以下のような動作を実現したいです。 店舗コードをテキストボックスに入力したら  → 該当する店舗名をセレクトボックスに表示したい セレクトボックスで店舗名を選択したら  → 対応する店舗コードをテキストボックスに表示したい 項目連動の実装方法や注意点があれば教えてください。

html
                          <!-- 取引支店(コード+名称) -->
                          <div class="row mb-2 align-items-center">
                              <label class="col-4 col-form-label">取引支店</label>
                              <div class="col-8">
                                  <div class="row g-2">
                                      <div class="col-4">
                                          <input type="text" class="form-control"
                                                 name="CustomerBranchCode"
                                                 th:value="${cp.result.value['CustomerBranchCode']}"
                                                 placeholder="店舗コード">
                                      </div>
                                      <div class="col-8">
                                          <select class="form-select"
                                                  name="CustomerBranchName"
                                                  th:value="${cp.result.value['CustomerBranchName']}">
                                              <option value="">選択してください</option>
                                          </select>
                                      </div>
                                  </div>
                              </div>
                          </div>
php
    $where = "?where=@CustomerCode='" . $customer_code . "'";
    $apiUrl = "/apps/".APP_ID."/dbs/".DB_ID_CustomerMemberInfo."/records/".$where;

    // API呼び出し
    $result = $commonBase->apiCurlAction("GET", $apiUrl);

    // 結果をHTMLへ渡す
    $SPIRAL->setTHValue("data", $result);

このような形のAPIで1レコード取得するやり方は分かるのですが、すべてのレコードを取得し、一つのせれくとぼっくすにまとめるやり方が解からない状態です。
更新日:2026年1月13日(火)
いいね

コメント

  • ご連絡いただきましてありがとうございます。 > ① 店舗マスタDBの内容をセレクトボックスに表示したい PHPを確認しましたところ、Where条件を指定しているため、全件取得ではなくWhere条件が適応された後のレコードの取得になっているかと存じます。 全件取得の場合には、Where条件を除いて、条件をつけずに検索することで全件検索となります。 ※ただし件数に制限があり、1回のリクエストで取得できるレコードの数は、デフォルト20、最大で200レコードとなります。 取得件数を変更する場合には、パラメータにlimitを設定ください 200件以上の取得が必要な場合は、再度レコード取得のAPIを使用する必要がございます。 ▼APIメソッドごとのサンプルコードまとめ Record / Record (bulk) > レコード一覧取得メソッド https://knowledge.spirers.jp/article/development/detail/4148#:~:text=%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E5%8F%96%E5%BE%97%E3%82%92%E5%AE%9F%E8%A1%8C ▼レコード一覧を取得 https://docs.spiral-platform.com/api/#operation/getRecords ▼APIで200件以上のレコードを取得するサンプルプログラム https://knowledge.spirers.jp/article/development/detail/9431 セレクトボックスの例ではございませんが、参照先DBのレコードをプルダウンで表示するサンプルプログラムがございますので、 ご参考いただけますと幸いです。 ▼参照先DBのレコードをフォームにプルダウンで表示 https://support.spiral-platform.com/api/sample/8390.html

    • いいね
    2026年1月13日(火)
  • > ② テキストボックスとセレクトボックスを連動させたい 連動させる場合には、JavaScriptにて制御する必要がございます。 サンプルコードがなく恐縮ですが、実装イメージとしましては、下記となります。 ・セレクトを選んだらテキストにコードを入力 1. セレクトにて選択された際に動作 2. 選択中のセレクトのvalueの値(店舗コード)をテキストに入力 ・テキストに入力したらセレクトを選択 1. テキストが入力された際に動作 2. 入力したテキストのvalueの値を取得し、セレクトの選択肢のvalueの値が同じものを選択中に変更 ■注意点 テキストボックスにDBのデータにない値を入れた場合、セレクト項目をフィルタしているため、 セレクトに選択できる値がないなどが起こる可能性がございます。 存在しない店舗コードを受け付けない場合はJavaScriptでエラーメッセージを表示するなど 対応を追加ください。 ご確認の程、よろしくお願いいたします。

    • いいね
    2026年1月13日(火)
あなたもログインして、
回答してみませんか?