Codeigniter: Как создать форму редактирования, которая использует проверку формы и повторное заполнение? - PullRequest
10 голосов
/ 29 апреля 2010

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

Это можно сделать, просто установив значения указанных полей в то, что им нужно, чтобы они были в представлении:

<input type="text" value="<?php echo $article['short_desc'];?>" name="short_desc" />

Но, если я хочу использовать form_validation в codeigniter, я должен добавить этот код к моей разметке:

<input value="<?php echo set_value('short_desc')?>" type="text" name="short_desc" />

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

Есть ли способ объединить их так, чтобы моя форма редактирования могла показывать значения, которые нужно отредактировать, а также заново заполнять?

Спасибо

1 Ответ

19 голосов
/ 29 апреля 2010

set_value() на самом деле может принимать второй аргумент для значения по умолчанию, если нечего заполнять (по крайней мере, для версий CI 1.7.1 и 1.7.2). Смотрите следующее из библиотеки Form_validation.php (строка 710):

/**
 * Get the value from a form
 *
 * Permits you to repopulate a form field with the value it was submitted
 * with, or, if that value doesn't exist, with the default
 *
 * @access  public
 * @param   string  the field name
 * @param   string
 * @return  void
 */ 
function set_value($field = '', $default = '')
{
    if ( ! isset($this->_field_data[$field]))
        {
            return $default;
        }

        return $this->_field_data[$field]['postdata'];
}

Итак, имея это в виду, вы можете просто передать значение по умолчанию в set_value следующим образом:

<input value="<?php echo set_value('short_desc', $article['short_desc'])?>" type="text" name="short_desc" />

Если нет значения для повторного заполнения, set_value() по умолчанию будет $article['short_desc']

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

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