Помощник для работы с формами
Файл помощника Form содержит функции, которые помогают в работе с формами.
Загрузка этого помощника
$this->load->helper('form');
Доступны следующие функции:
form_open()
Создает открывающий тег формы, с основным URL, сформированным на основе ваших конфигурационных настроек. Опционально вы можете передать атрибуты формы и скрытые поля. Функция будет всегда добавлять атрибут accept-charset, основываясь на кодировке, указанной в вашем конфигурационном файле.
Основной смысл использования этого тега вместо жесткого кодирования HTML заключается в увеличении портативности, если при развертывании или миграции сайта изменится URL или конфигурационные опции.
Вот простой пример:
echo form_open('email/send');
Этот пример создают открывающий тег формы, используя ваш основной URL плюс сегменты URI "email/send", например так:
form_open_multipart()
Эта функция абсолютно идентичная form_open(), описанной выше, за исключением того, что она добавляет атрибут multipart, который позволяет загружать файлы через эту форму.
form_hidden()
Позволяет вам генерировать скрытые поля для ввода. Вы можете передать строку имя/значение, для того, чтобы создать одно поле:
form_input()
Позволяет вам сгенерировать стандартное текстовое поле ввода. Как минимум, вы можете передать имя поля в первом параметре, и значение во втором:
echo form_input('username', 'johndoe');
Также вы можете передать ассоциативный массив, содержащий данные:
Если вы хотите, чтобы тег содержал какие-то дополнительные данные, такие как JavaScript, вы можете передать их в третьем параметре:
$js = 'onClick="some_function()"';
echo form_input('username', 'johndoe', $js);
form_password()
Эта функция идентична во всех отношениях form_input(), описанной выше, за исключением того, что она создает поле для ввода пароля (input type="password").
form_upload()
Эта функция идентична во всех отношениях form_input(), за исключением того, что она создает поле для выбора файлов (input type="file"), используемое для загрузки файлов.
form_textarea()
Эта функция идентична во всех отношениях form_input(), за исключением того, что она создает поле для ввода текста (textarea). Примечание: вместо параметров "maxlength" и "size" вы можете передать более адекватные "rows" и "cols".
form_dropdown()
Позволяет вам сгенерировать стандартный выпадающий список. Первый параметр содержит имя поля, во втором необходимо передать ассоциативный массив опций, а в третьем — выбранное поле. Вы также можете передать массив с множеством элементов в третьем параметре, и CodeIgniter создаст множественный выбор. Пример:
form_multiselect()
Позволяет вам создать стандартное поле с множественным выбором. Первый параметр содержит имя поля. Второй — ассоциативный массив с опциями, и третий содержит одно или несколько уже выбранных значений. Использование параметров аналогично функции form_dropdown(), описанной выше, за исключением, конечно, необходимости использования синтаксиса POST для имен полей, то есть foo[].
form_checkbox()
Позволяет вам сгенерировать поле флага checkbox. Простой пример:
echo form_checkbox('newsletter', 'accept', TRUE);
// Сделает:
<input type="checkbox" name="newsletter" value="accept" checked="checked" />
Третий параметр содержит булево TRUE или FALSE, определяющее должен ли флаг быть установлен или нет.
В соответствии с другими функциями в этом помощнике, вы также можете передать массив аттрибутов функции:
$data = array(
'name' => 'newsletter',
'id' => 'newsletter',
'value' => 'accept',
'checked' => TRUE,
'style' => 'margin:10px',
);
echo form_checkbox($data);
// Сделает:
<input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" />
Как и с другими фунциями, если вы хотите добавить дополнительные данные, к примеру JavaScript, вы можете передать четвертый параметр:
$js = 'onClick="some_function()"';
echo form_checkbox('newsletter', 'accept', TRUE, $js)
form_radio()
Эта функция во всех отношениях идентична функции form_checkbox(), но она создает переключатели "radio".
form_submit()
Позволяет вам сгенерировать стандартную кнопку submit. Простой пример:
echo form_submit('mysubmit', 'Submit Post!');
// Сделает:
<input type="submit" name="mysubmit" value="Submit Post!" />
Также, как и в других функциях, вы можете передать ассоциативный массив в первом параметре, если хотите установить собственные атрибуты. Третий параметр позволяет вам добавить дополнительные данные в элемент, например JavaScript.
form_reset()
Позволяет вам сгенерировать стандартную кнопку сброса "reset". Используйте идентично form_submit().
form_button()
Позволяет вам сгенерировать стандартную кнопку. Как минимум, вы можете передать имя кнопки и подпись в первом и втором параметрах:
echo form_button('name','content');
// Сделает
<button name="name" type="button">Content</button> Или вы можете передать ассоциативный массив с данными, которые должна содержать кнопка: $data = array(
'name' => 'button',
'id' => 'button',
'value' => 'true',
'type' => 'reset',
'content' => 'Reset'
);
echo form_button($data);
// Сделает:
<button name="button" id="button" value="true" type="reset">Reset</button> Если вы хотите, чтобы кнопка содержала какие-то дополнительные данные, например JavaScript, вы можете передать их строкой в третьем параметре: $js = 'onClick="some_function()"';
echo form_button('mybutton', 'Click Me', $js);
form_close()
Сделает закрывающий тег </form>. Единственное преимущество этой функции в том, что она позволяет передать дополнительные данные, которые будет добавлены после тега. Например:
$string = "</div></div>";
echo form_close($string);
// Сделает:
</form>
</div></div>
set_value()
Позволяет устанавливать значения для полей input и textarea. Передайте имя поля в первом параметре функции. Второй опциональный параметр позволяет установить значение по умолчанию. Пример:
<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />
В примере выше при первой загрузке страницы в поле будет 0.
set_select()
Если вы используете меню <select>, эта фунция позволяет вам отобразить выбранный элемент. Первый параметр должен содержать имя меню, второй параметр должен содержать значение каждого элемента, и третий параметр позволяет вам указать на использование значения по умолчанию (используйте булевы TRUE или FALSE).
Пример:
<select name="myselect">
<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
</select>
set_checkbox()
Позволяет вам вывести флаг checkbox в том состоянии, в котором он был перед передачей формы. Первый параметр должен содержать имя флага, второй параметр должен содержать его значение, а третий опциональный параметр позволяет указать вам на состояние по умолчанию (используйте булевы TRUE или FALSE). Пример:
<input type="checkbox" name="mycheck" value="1" <?php echo set_checkbox('mycheck', '1'); ?> />
<input type="checkbox" name="mycheck" value="2" <?php echo set_checkbox('mycheck', '2'); ?> />
set_radio()
Позволяет вам вывести переключатель radio в том состоянии, в котором он был перед передачей формы. Эта функция идентична функции set_checkbox(), описанной выше.
<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />
<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />
Пример:
Напишем наш контроллер Blog.php
<?php
class Blog extends CI_Controller {