Создание тегов в классе php form builder - PullRequest
2 голосов
/ 10 февраля 2011

Я использую php class builder class

$form->addTextbox("Tags:", "thread_tags", "", array("required" => 1));

Кто-нибудь знает, как вы можете проверять теги (например, разделенные на строки tag1, tag2, tag3), используя этот класс? Вы делаете это после проверки или раньше?

Очевидно, что вы можете использовать preg_split, но где бы вы это сделали? Я хочу убедиться, что каждый тег имеет длину не менее 3 символов.

1 Ответ

0 голосов
/ 14 февраля 2011

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

Добавить элемент текстового поля:

$form->addTextbox('Tags:', 'tags', "", array("required" => 1));

Есть метод «bind ([объект формы], [условие javascript], [условие php])», я думаю, что этот метод должен добавить правило проверки к элементу.

$form->bind($form, '', 'validateTags()');

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

function validateTags($form) {
    if (isset($_POST["tag"])) {
        $value = strip_tags($_POST["tag"]);
        $tags = explode(',', $value);
        foreach ($tags as $tag) {
            if (strlen($tag) < 3) {
                            // there might be a better way to do this!
                            // validation_2 == id of the form
                $_SESSION["pfbc-errors"]['validation_2']["errormsg"]['tag'] = "validation message....";
                return false;
            }
        }
        unset($_SESSION["pfbc-errors"]['validation_2']["errormsg"]['tag']);
    }
    return true;
}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...