質問

投稿者:M
登録日:2026年2月2日(月)

マルチセレクト項目がAPI登録時に1件のみ、または登録されない

DBのマルチセレクト項目について、APIでの登録方法を確認させてください。 ■ 項目情報 項目名:AttentionCodes 種別:マルチセレクト 保存形式:文字列(125 bytes) ■ やりたいこと HTML の checkbox(複数選択)で選択された値を、 API /records で マルチセレクト項目として複数件登録したい。

html
一部抜粋
<input type="checkbox" name="AttentionCodes" value="1">
<input type="checkbox" name="AttentionCodes" value="2">
<input type="checkbox" name="AttentionCodes" value="3">
php
$AttentionCodes             = $SPIRAL->getParam("AttentionCodes");

    if ($AttentionCodes !== null && !is_array($AttentionCodes)) {
        $AttentionCodes = [$AttentionCodes];
    }

    // 登録データ作成
    $insertData = [];

    // 会員請求先情報
 $insertData = [
     'AttentionCodes' => $AttentionCodes
 ];

    $insertData = array_filter(
        $insertData,
        function ($v) {
            if (is_array($v)) {
                return count($v) > 0;   // 空配列は除外
            }
            return !($v === '' || $v === null);
        }
    );

    // 共通モジュールでAPI呼び出し
    $resultRecordInsert = $commonBase->apiCurlAction(
        "POST",
        "/apps/" . APP_ID . "/dbs/" . DB_ID_MemberInfo . "/records",
        $insertData
    );

// htmlへ返却
$SPIRAL->setTHValue("AttentionCodes", $AttentionCodes);
更新日:2026年2月2日(月)
いいね

コメント

  • ご連絡いただきましてありがとうございます。 >HTML の checkbox(複数選択)で選択された値を、 >API /records で マルチセレクト項目として複数件登録したい。 コードの共有ありがとうございます。 PHPの最初の$AttentionCodesの取得が送信されてきた値やクエリパラメータの値を 一つ取得する「getParam」を指定しているため、選択肢一つ分の値しか取れていない可能性がございます。 「getParams」を使用の上、「$AttentionCodes」の中身がマルチセレクトの API入出力フォーマットに指定されている形式になっているかご確認の上で 登録、更新の処理を行ってください。 ▼ページのPHP設定 https://support.spiral-platform.com/function/function-site-manage/6898.html#getParamsparamName ▼フィールドタイプリファレンス<マルチセレクトフィールド<API入出力フォーマット https://support.spiral-platform.com/function/function-app-manage/20.html#multiselect ご確認の程、よろしくお願いいたします。

    • いいね
    2026年2月2日(月)
あなたもログインして、
回答してみませんか?
質問がまとまらない方へ チャットコミュニティで気軽に聞いてみよう! 疑問や課題が整理できていなくても問題ありません。SPIRAL®で解決できる範囲がまだわからなくても質問できます。「ここで聞くと場違いかな?」というお悩みでも歓迎します。
  • Discordで聞く
  • Slackで聞く