Расширить функцию проверки ООП для поддержки массивов

0

Я использую следующую функцию проверки для проверки форм на моем сайте. Я хотел бы расширить его так, чтобы он поддерживал массивы.

Например, на данный момент я могу использовать его в следующем виде:

<input type="text" name="agency_name">

Но я хотел бы адаптировать его так, чтобы он мог проверять поля в следующем формате (размещенные массивы):

<input type="text" name="agency_name[]">
<input type="text" name="agency_name[]">

Функция, которую я использую:

public function check($source, $items = array()) {
foreach($items as $item => $rules) {
    foreach($rules as $rule => $rule_value) {
        $value = $source[$item];
        $item = escape($item);

        if($rule === 'required' && empty($value)) {
            $this->addError("{$item} is required");
        } 
        else if (!empty($value)) {
            switch($rule) {
                case 'min':
                    if(strlen($value) < $rule_value) {
                        $this->addError("{$item} must be a minimum of {$rule_value} characters.");
                    }
                break;
                case 'max':
                    if(strlen($value) > $rule_value){
                        $this->addError("{$item} must be a maximum of {$rule_value} characters.");
                    }
                break;
                case 'matches':
                    if($value != $source[$rule_value]) {
                        $this->addError("{$rule_value} must match {$item}.");
                    }
                break;
                case 'unique':
                    $check = $this->_db->get($rule_value, array($item, '=', $value));

                    if($check->count()) {
                        $this->addError("{$item} already exists.");
                    }
                break;
            }
        }
    }
}
if(empty($this->_errors)) {
    $this->_passed = true;
}
}

Кто-нибудь знает, как легко его изменить для поддержки проверки полей массива?

Благодарю.

  • 0
    Примечание: переключатель / чехол! == упс. Фактор условный с полиморфизмом.
Теги:
arrays
validation
oop

1 ответ

1
Лучший ответ

//Перед вашей функцией проверки и после загрузки документа

$("#NameOfTrigger").click(function() {
    var items = [];
    $("#NameOfFormOtParentContainer input[type=text]").each(function() {        
        items.add($(this).val);
    });        
});

//затем передать массив элементов в вашу функцию проверки

Ещё вопросы

Сообщество Overcoder
Наверх
Меню