Автор Тема: Передать массив из формы в контроллер  (Прочитано 406 раз)

22 Июль 2017, 21:23:18
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте
В контроллере в методе renderForm() создаю массив и передаю его в форму:
$results_next= Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
            SELECT os.`id_order_state`, IF(osn.`id_order_state_next`, 1, 0) checked, osl.`name` FROM .....
$this->fields_value['array_next_state'] = $results_next;
затем в форме из этого массива делаю таблицу с чекбоксами и названиями
<tbody>
{foreach $fields_value.array_next_state as $next_state}
<tr>
<td><input type="checkbox" name="is_check[]" value="{$next_state.id_order_state}" {if $next_state.checked == 1}checked="checked"{/if} ></td>
<td>{$next_state.name}</td>
</tr>
{/foreach}
</tbody>
после этого, когда пользователь "почекает" то что нужно и нажмет Сохранить, в контроллере в методе postProcess() получаю значение
$array_checked = (int)Tools::getValue('is_check');
По моей задумке в $array_checked должен быть массив со значениями id_order_state, на которых стоял флажок.
На практике - если проставлен любой один или несколько флажков, то $array_checked = 1, если ни одного - то 0.
В чем моя ошибка?
23 Июль 2017, 09:14:28
Ответ #1
  • Фрилансер
  • *
  • Сообщений: 217
  • Репутация: +6/-0
  • Разработка и поддержка сайтов
    • Просмотр профиля
    • Разработка и поддержка сайтов
А вот так нужно:
$array_checked = Tools::getValue('is_check');
23 Июль 2017, 10:06:37
Ответ #2
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот я тормоз! Смотрю в книгу - вижу фигу.
Часа три из жизни потерял из-за невнимательности.
Спасибо!