проблема обработки массива флажков codeigniter - PullRequest
0 голосов
/ 20 октября 2011

У меня есть поля формы, которые являются флажками, как показано ниже:

<input id="abirrules@gmail.com" type="checkbox" checked="checked" value="abirrules@gmail.com" style="float:left;border:2px dotted #00f" name="email[]">
<input id="abirrules1@gmail.com" type="checkbox" checked="checked" value="abirrules1@gmail.com" style="float:left;border:2px dotted #00f" name="email[]">
<input id="abirrules3@gmail.com" type="checkbox" checked="checked" value="abirrules3@gmail.com" style="float:left;border:2px dotted #00f" name="email[]">

Но когда в контроллере я беру var_dump ($ this-> input-> post ('email')) , отображается bool (false) .

в контроллере у меня такой метод:

public function referral_email()
{
    $data = $this->input->post('email');
    var_dump($data);exit;
 }

Как получить доступ к этому массиву флажков в моем контроллере?

Ответы [ 3 ]

1 голос
/ 03 ноября 2011

Вы случайно пытаетесь обрезать вывод, используя библиотеку проверки формы?У меня была такая же проблема, и удаление «trim» из правил валидации решило ее.

0 голосов
/ 27 ноября 2012

trim() работает со строками, но ваш $_POST['email'] является массивом.Правильное исправление должно состоять в том, чтобы передать имя поля как 'email[]' при использовании библиотеки проверки формы (в коде, который вы не показывали, но прокомментировали позже).

http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#arraysasfields

0 голосов
/ 26 октября 2011

Убедитесь, что тег формы, окружающий текстовые поля, имеет атрибут method = "post", иначе он может быть отправлен в массив $ _GET.Я получил его для работы со следующим кодом:

Контроллер

public function referral_email()
{
    $data = $this->input->post('email');
    var_dump($data);
}

Просмотр

<form method="post" action="welcome/referral_email">
<input id="abirrules@gmail.com" type="checkbox" checked="checked" value="abirrules@gmail.com" style="float:left;border:2px dotted #00f" name="email[]">
<input id="abirrules1@gmail.com" type="checkbox" checked="checked" value="abirrules1@gmail.com" style="float:left;border:2px dotted #00f" name="email[]">
<input id="abirrules3@gmail.com" type="checkbox" checked="checked" value="abirrules3@gmail.com" style="float:left;border:2px dotted #00f" name="email[]">
<input type="submit" value="Submit" />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...