メインコンテンツまでスキップ

フォーム入力値の形式チェック

POST /api/v1/do_member_form_action を呼び出す前に、入力された値が各項目の形式に合っているかを事前にチェックできます。これにより、ユーザーに即座にフィードバックを返す UI を実装できます。

APIの紹介

  • POST /api/v1/validate_member_form_parameter: 1 項目ずつチェックします。
  • POST /api/v1/validate_member_form_parameters: 複数項目をまとめてチェックします。
ヒント

複数項目をチェックする場合は、API の呼び出し回数が 1 回で済む POST /api/v1/validate_member_form_parameters の利用を推奨します。

実装サンプル

POST /api/v1/validate_member_form_parameters を使って、複数の入力値を一度にチェックする例です。

<?php

// 環境情報
$environmentId = getenv("ENV_ID");
$apiToken = getenv("API_TOKEN");
$formId = 1; // チェック対象のフォームID

// APIエンドポイント
$url = "https://krs.bz/$environmentId/api/v1/validate_member_form_parameters";

// チェックしたい値(ユーザーの入力値を想定)
$formElementValues = [
'e_7' => 'text', // 不正なメールアドレス
'e_8' => [], // 必須項目なのに空
'e_9' => 'カナ①', // 半角カナと機種依存文字を含む
];

// リクエストボディを作成
$requestBody = [
'form_id' => $formId,
'form_element_values' => $formElementValues,
];

// cURLセッション
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestBody));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json',
]);

// APIリクエストを実行
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

// レスポンスを処理
if ($httpCode === 200) {
$errors = json_decode($response, true);
$hasError = false;
foreach($errors as $elementName => $errorMessages) {
if (!empty($errorMessages)) {
echo "項目「{$elementName}」のエラー:", PHP_EOL;
foreach($errorMessages as $message) {
echo "- ", $message, PHP_EOL;
}
$hasError = true;
}
}
if (!$hasError) {
echo "すべての項目が正常です。", PHP_EOL;
}
} else {
// エラー処理
$error = json_decode($response, true);
echo 'API呼び出しでエラーが発生しました。', PHP_EOL;
echo 'HTTPコード: ', $httpCode, PHP_EOL;
echo 'エラーコード: ', $error['error_code'] ?? 'N/A', PHP_EOL;
// KR_API_F0110: Not API Form. (APIフォームではない)
// KR_API_F0121: Invalid Form Element Name. (存在しない項目名を指定)
}

実行結果の例

項目「e_7」のエラー:
- エラー: 形式が正しくありません。
項目「e_8」のエラー:
- エラー: 選択されていません。
項目「e_9」のエラー:
- エラー: 半角カナが使われています。
- エラー: 機種依存文字が使われています。