郵便番号にハイフンを追加して登録する
サイトの郵便番号住所自動補完を使用した場合、フォームの郵便番号フィールドの入力フォーマットは「数字7桁」または「数字3桁-4桁」となります。
「数字7桁」または「数字3桁-4桁」のどちらかに統一してDBに登録したい場合、登録フォームの完了ステップでPHPを使用して登録しなおす方法があります。
下記は、「数字3桁-4桁」に統一して登録するサンプルプログラムです。
ページのPHP
<?php //SPIRAL Ver2のAPI用のURL $base_url = "https://api.spiral-platform.com/v1/"; $url = $base_url."apps/{appid}/dbs/{dbid}/records"; //APIキー $apikey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; //ヘッダ $header = array( "Authorization:Bearer ".$apikey, "Content-Type:application/json", ); $registForm = $SPIRAL->getRegistrationForm("登録フォーム識別名"); //完了ステップでのみ実行する if ($registForm->isCompletedStep()) { $record = $SPIRAL->getRecordValue(); $recordId = $record['item']['_id']; $zipCode = $record['item']['zipCode']; //ハイフンなし7桁の郵便番号が登録されている場合に実行する if (preg_match("/^\d{7}$/",$zipCode)) { //urlの末尾に変更したいrecordIdを付加 $url = $url ."/". $recordId; //ボディ $body = [ //ハイフンなし7桁の郵便番号に「数字3桁-4桁」の形式でハイフンをつける "zipCode" => substr($zipCode, 0, 3) .'-'. substr($zipCode, -4), ]; //配列をjson形式に変換 $json_body = json_encode($body); // curlライブラリを使用して送信 //セッションを初期化する $curl = curl_init(); //実行結果を文字列で取得できるように設定 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //urlを指定 curl_setopt($curl, CURLOPT_URL , $url); //ヘッダを指定 curl_setopt($curl, CURLOPT_HTTPHEADER , $header); //ボディを指定 curl_setopt($curl, CURLOPT_POSTFIELDS , $json_body); //メソッドを指定 curl_setopt($curl, CURLOPT_CUSTOMREQUEST , 'PATCH'); //セッションを実行し、その結果を取得 $response = curl_exec($curl); //セッションを閉じる curl_close($curl); $response_json = json_decode($response, true); $zipCode = $response_json['item']['zipCode']; } //ブロックの登録フォーム完了ソース表示に使用 $SPIRAL->setTHValue("message", "zipCode:". $zipCode); }
ブロックの登録フォーム完了ソース
<div> <div th:if="${cp.result.isSuccess}"> <div th:text="${cp.result.value['message']}"></div> </div> <div th:if="${!cp.result.isSuccess}"> <div th:text="${cp.result.errorMessage}"></div> </div> </div>
※ブロックのソースはテスト表示にのみ使用しますので、実際に使用する際には不要です。