Ereg on OOP выберите вариант

Я пытаюсь создать ereg для опции выбора в объектно-ориентированном программировании для проверки.
Хотя он всегда возвращает true, даже если выбранная опция не является частью ereg!

В моем классе у меня есть следующее:

function makeSelect($category, $fieldName){
$a = '<div>'."\n";
$a .= "<select name='$fieldName'>"."\n";
$a .= "<option value='' selected='true' disabled='disabled'>Pick Category</option>\n";
foreach ($category as $value){
$a .= "<option value='$value'>$value</option>"."\n";
}
$a .= "</select>"."\n";
$a .= "</div>"."\n";
return $a;
}

function checkSelect($selectName){
if(ereg('^[Pick]', $selectName)){
$this->messageArray[$selectName] = "<span class='fail'>Please select field</span>";
$this->testArray[$selectName] = false;
}
else {
$this->messageArray[$selectName] = "<span class='ok'>Sweet</span>";
$this->testArray[$selectName] = true;
}
}

В моем основном файле я устанавливаю массив как

$category = array(
1=>'First Category',
2=>'Second Category',
3=>'Third Category',
4=>'Fourth Category'
);

И вызывая функцию checkSelect как

$oForm->checkSelect('category');

-1

Решение

С вызовом $oForm->checkSelect('category'); ваше выражение выглядит ereg('^[Pick]', 'category') следовательно, это будет всегда «правда».

Я думаю, что вам нужно передать значение из формы, а не имя элемента. Например.

$oForm->checkSelect($_POST['category']);

Постскриптум Вы могли бы легко переписать его в устаревший код

preg_match('/^[Pick]/', $selectName)

P.P.S. лучше переименовать $selectName в $selectedValue, Вы пытаетесь проверить значение, но имя.

P.P.P.S. Кроме того, ваш шаблон не будет соответствовать вашим значениям.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector