Intereting Posts
Перенаправить исходные файлы .gif на страницу обработчика через .htacces – мой код не работает Неустранимая ошибка: вызов неопределенной функции mysqli_result () JQuery: значения автозаполнения и категории.Error: this.source не является функцией Измените HTML и PHP с помощью preg_replace PHP, Неустранимая ошибка: вызов неопределенного метода, почему? общаться с программой и php Несколько форм и один приемник PHP Когда и где работает JavaScript, как насчет PHP? Могу ли я объединить два? Форма электронной почты PHP отправляет электронную почту каждую страницу обновляется Процесс сигнализировался сигналом «9», Как передать переменную php в модальное окно Экспресс-сессия с экспресс-mysql-сеансом вообще не работает DropzoneJS: Как получить ответ PHP после успешной загрузки? Как получить доступ к контейнеру службы в глобальной вспомогательной функции symfony2 (услуге)? работа с массивом данных JSON из ответа Ajax?

Как получить запрос $ _POST из модуля просмотра?

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

<form action="" method="post"> <TABLE id="dt_basic" class="table table-striped table-bordered table-hover dataTable"> <THEAD> <TR> <TH></TH> <TH>ID</TH> <TH>Client</TH> <TH>User</TH> <TH>Role</TH> <TH>Projects</TH> </TR> </THEAD> <TBODY> <?php /* @var $item Admin\Model\User */ foreach ($this->users as $item) { ?> <TR> <TD class='admin'><input type="checkbox" name="users[<?php echo $item->id; ?>]" value=<?php echo $item->id; ?> checked/></TD> <TD class='admin c'><?= $item->id ?></TD> <TD class='admin'><?= $item->getClientObject() ?></TD> <TD class='admin'> <img src="<?= $item->getAvatarPath() ?>" alt="me" class="online avatar"/> <a title='details' href='/admin/user/detail/id/<?= $item->id ?>'><?= $item->name . " " . $item->surname ?> </a> </TD> <TD class='admin'><?= $item->getRoleObject() ?></TD> <TD class='admin'> <a title='projects' class='btn btn-default btn-sm' href='/admin/user/project/id/<?= $item->id ?>'><i class='fa fa-icon-fix fa-briefcase'></i></a> <? foreach ($this->projects[$item->id] as $i => $project) { echo $project->getName(); if ($i != sizeof($this->projects[$item->id]) - 1) echo " • "; } ?> </TD> </TR> <?php } ?> </TBODY> </TABLE> </form> 

Весь .phtml : http://pastebin.com/8paJZgjb

Я хочу получить массив users[] и использовать его элементы внутри контроллера, но я не могу найти способ его получить. Вот что я пробовал до сих пор:

  if (!empty($_POST["users"])) { foreach (($_POST["users"]) as $selectedUsers) { $users = $this->getUserTable()->fetchAll(false, "id=" . $selectedUsers); } } else { $this->cache->error = "Please choose at least one user."; return $this->view; } 

Вся функция: http://pastebin.com/pE4afemx

… но, по-видимому, он пуст. var_dump показывает элементы из формы рассылки, но никаких признаков пользователей:

 array (size=2) 'subject' => string 'hello' (length=5) 'message' => string 'message' (length=7) 

Какие-либо предложения ?

Из кода в вашей ссылке pastebin у вас на странице две формы. Один из них начинается в строке 16, содержит ваши пользовательские флажки, а затем заканчивается в строке 61. Затем второй начинается в строке 77 и заканчивается в строке 79. Я предполагаю, что это тот, который отправляется кнопкой отправки javascript, которую вы используете в строке 86 ,

Поскольку вы отправляете вторую форму, публикуются только ее данные. Если вы хотите, чтобы все было представлено, все должно быть в одной форме. В идеале вы перемещаете флажки пользователя из этого шаблона, они выводятся как часть $form , но было бы сложно держать их в макете таблицы таким образом, поэтому проще было бы переместить таблицу, содержащую пользовательский флажок, чтобы он выводился после echo $this->formCollection($form); , но до этой формы заканчивается echo $this->form()->closeTag(); , Избавьтесь от тегов формы, которые у вас есть в строках 16 и 61, так как вам нужна только одна форма.

Изменить : Чтобы исправить другую проблему, попробуйте изменить код контроллера на это:

 if (!empty($_POST["users"])) { $userIDs = array(); foreach ($_POST["users"] as $selectedUser) { if (is_numeric($selectedUser) && $selectedUser > 0) { $userIDs[] = $selectedUser; } } if (count($userIDs) > 0) { $users = $this->getUserTable()->fetchAll(false, "id IN (".implode(', ', $userIDs).")"); }