diff --git a/data/class/SC_CheckError.php b/data/class/SC_CheckError.php index 24c979ba03..e07292d525 100644 --- a/data/class/SC_CheckError.php +++ b/data/class/SC_CheckError.php @@ -1762,4 +1762,18 @@ public function numelicCheck($string) return strlen($string) > 0 && !ctype_digit($string); } + + // 都道府県マスタに存在する値かチェック + public function PREF_CHECK($value) + { + $disp = $value[0]; + $key = $value[1]; + + $pref_id = $this->arrParam[$key]; + $objQuery =& SC_Query_Ex::getSingletonInstance(); + $exists = $objQuery->exists('mtb_pref', 'id = ?', array($pref_id)); + if (!$exists) { + $this->arrErr[$key] = '※ ' . $disp . 'が不正な値です。
'; + } + } } diff --git a/data/class/SC_FormParam.php b/data/class/SC_FormParam.php index 4593481a88..d12da67177 100644 --- a/data/class/SC_FormParam.php +++ b/data/class/SC_FormParam.php @@ -229,6 +229,7 @@ public function checkError($br = true) case 'SELECT_CHECK': case 'FILE_NAME_CHECK_BY_NOUPLOAD': case 'NUM_POINT_CHECK': + case 'PREF_CHECK': $this->recursionCheck($this->disp_name[$index], $func, $value, $arrErr[$key], $this->length[$index]); if (SC_Utils_Ex::isBlank($arrErr[$key])) { diff --git a/data/class/helper/SC_Helper_Customer.php b/data/class/helper/SC_Helper_Customer.php index 8eee97d78b..f5cabadd76 100644 --- a/data/class/helper/SC_Helper_Customer.php +++ b/data/class/helper/SC_Helper_Customer.php @@ -394,7 +394,7 @@ public function sfCustomerCommonParam(&$objFormParam, $prefix = '') $objFormParam->addParam('郵便番号1', $prefix . 'zip01', ZIP01_LEN, 'n', array('EXIST_CHECK', 'SPTAB_CHECK', 'NUM_CHECK', 'NUM_COUNT_CHECK')); $objFormParam->addParam('郵便番号2', $prefix . 'zip02', ZIP02_LEN, 'n', array('EXIST_CHECK', 'SPTAB_CHECK', 'NUM_CHECK', 'NUM_COUNT_CHECK')); $objFormParam->addParam('国', $prefix . 'country_id', INT_LEN, 'n', array('NUM_CHECK')); - $objFormParam->addParam('都道府県', $prefix . 'pref', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK')); + $objFormParam->addParam('都道府県', $prefix . 'pref', INT_LEN, 'n', array('PREF_CHECK', 'EXIST_CHECK', 'NUM_CHECK')); } else { $objFormParam->addParam('お名前(フリガナ・姓)', $prefix . 'kana01', STEXT_LEN, 'CKV', array('NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'KANA_CHECK')); $objFormParam->addParam('お名前(フリガナ・名)', $prefix . 'kana02', STEXT_LEN, 'CKV', array('NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'KANA_CHECK'));