Проверка формы Codeigniter на данных многомерной формы - PullRequest
1 голос
/ 24 августа 2011

У меня сейчас проблема с проверкой динамических форм в воспламенителе кода.

<input name="item1_name[0][PostTitle]">
<input name="item1_name[0][PostSubject]">
<input name="item1_name[0][PostMessage]">
<input name="item1_name[0][PostSlug]">

<input name="item1_name[1][PostTitle]">
<input name="item1_name[1][PostSubject]">
<input name="item1_name[1][PostMessage]">
<input name="item1_name[1][PostSlug]">

Выше часть моей формы. Эта форма представляет данные в виде массива. Я хочу использовать средство проверки формы codeigniter для проверки всех полей. Проблема с этим в настоящее время заключается в том, что форма является динамической. Внешний интерфейс позволяет эти наборы входов умножать бесконечное количество раз, используя JavaScript. У кого-нибудь есть идеи, как мне решить эту проблему?

Ответы [ 2 ]

1 голос
/ 26 августа 2013

Вы можете использовать метод ниже ...

//get the array 
$item1_name = $this->input->post('item1_name', TRUE);

foreach ($item1_name as $key => $item1_name)
{
     // Set the rules
     $this->form_validation->set_rules($key."[PostTitle]", "PostTitle", "trim|required");
     $this->form_validation->set_rules($key."[PostSubject]", "PostSubject", "trim|required");
     $this->form_validation->set_rules($key."[PostSubject]", "PostSubject", "trim|required");
     $this->form_validation->set_rules($key."[PostSlug]", "PostSlug", "trim|required");
}
0 голосов
/ 24 августа 2011

Напишите свою собственную функцию проверки и обработайте массив так, как вам хочется:

$this->form_validation->set_rules('item1_name', 'Item Name', 'callback_item_name_check');

function item_name_check($value)
{
    // evaluate $value and return TRUE or FALSE with error message
    if ($value == 'test')
    {
        $this->form_validation->set_message('item_name_check', 'You need to enter something else.');
        return FALSE;
    }
    else
    {
        return TRUE;
    }

}

Подробнее в Документация CodeIgniter .

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