Перейти к содержанию
Taekun

(нубский вопрос!) как получить данные из tpl в контроллере.

Рекомендуемые сообщения

Доброе время суток.

Сразу прошу прощения за такой примитивный вопрос и за то (если вопрос уже когда то был задан, видимо просмотрел).

Ситуация следующая: создал модуль для ОС 2.0 которая работает с меню...... 

есть контроллер и tpl файл. Мне нужно в контроллере обрабатывать нажатие кнопки сохранить в верху модуля в админке. 

в принципе обработчик есть но вот загвоздка как через него послать данные из формы? 

Сразу хочу сказать что не смотря на то что я программер но вот с php, js,... знаком не очень. 

 

вот кусок кода из контроллера который отвечает за POST метод.

 

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->model_setting_setting->editSetting('topmenu', $this->request->post);


$this->session->data['success'] = $this->language->get('text_success');


$this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'));
}

вот фрагмент того, что в tpl 
 

<button type="submit" form="form-category" data-toggle="tooltip" title="<?php echo $button_save; ?>" class="btn btn-primary">
<i class="fa fa-save"></i>
</button>

чуть ниже есть следующие фрагменты:

<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-category" class="form-horizontal">
          <div class="form-group">
            <label class="col-sm-2 control-label" for="input-status"><?php echo $entry_status; ?></label>
            <div class="col-sm-10">
              <select name="topmenu_status" id="input-status" class="form-control">
                <?php if ($topmenu_status) { ?>
                <option value="1" selected="selected"><?php echo $text_enabled; ?></option>
                <option value="0"><?php echo $text_disabled; ?></option>
                <?php } else { ?>
                <option value="1"><?php echo $text_enabled; ?></option>
                <option value="0" selected="selected"><?php echo $text_disabled; ?></option>
                <?php } ?>
              </select>
            </div>
          </div>
        </form>

и 

 
<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-category" class="form-horizontal">
  <table id="menuitems" class="table table-striped table-bordered table-hover">
    <thead>
      <tr>
        <td class="text-right">№</td>
        <td class="text-left">ID</td>
        <td class="text-left"><?php echo $entry_menu_name; ?></td>
        <td class="text-left"><?php echo $entry_menu_link; ?></td>
        <td class="text-left"><?php echo $entry_menu_action; ?></td>
      </tr>
    </thead>
    <tbody>
      <?php $menu_row = 1; ?>
      <?php foreach ($items_menu as $menuitem) {?>
        <tr id="module-row<?php echo $menuitem['menu_id']; ?>">
          <td class="text-left"><?php echo $menu_row; ?></td>
          <td class="text-left"><input type="text" name="menu_id<?php echo $menuitem['menu_id']; ?>" value="<?php echo $menuitem['menu_id']; ?>"></td>
          <td class="text-left"><input type="text" name="menu_name<?php echo $menuitem['menu_id']; ?>" value="<?php echo $menuitem['name']; ?>"></td>
          <td class="text-left"><input type="text" name="menu_link<?php echo $menuitem['menu_id']; ?>" value="<?php echo $menuitem['link']; ?>"></td>
          <td class="text-left">
            <div class="topmenu-button-action" style="display: inline;">
             <?php /* <div style="display: inline;"><button type="button" onclick="saveMenuItem();" data-toggle="tooltip" title="<?php echo $button_menu_save; ?>" class="btn btn-warning"><i class="fa fa-save"></i></button></div> */?>
              <div style="display: inline;"><button type="button" onclick="$('#module-row<?php echo $menuitem['menu_id']; ?>').remove();" data-toggle="tooltip" title="<?php echo $button_menu_delete; ?>" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></div>
            </div>
          </td>
        </tr>
        <?php $menu_row++; ?>
      <?php } ?>
    </tbody>
    <tfoot>
      <tr>
        <td colspan="4"></td>
        <td class="text-left"><button type="button" onclick="addMenuItem();" data-toggle="tooltip" title="<?php echo $button_menu_add; ?>" class="btn btn-primary"><i class="fa fa-plus-circle"></i></button></td>
      </tr>
    </tfoot>
  </table>
  </form>
Вопрос как передать инфу из таблицы в контроллер. потому как он передает только topmenu_status в контроллер

if (isset($this->request->post['topmenu_status'])) {
$data['topmenu_status'] = $this->request->post['topmenu_status'];
} else {
$data['topmenu_status'] = $this->config->get('topmenu_status');
}

но в дебагере я остального не вижу. 

Кто подскажет? Хотя бы ссылку в какую сторону копать. 

Заранее благодарен.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у вас два id="form-category" это недопустимо,

ну и поэтому передается, только первая(одна) форма.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите что передается в $this->request->post

а так же, вам следует каждой форме придать свои id и соответственно сабмит для каждой, если же один сабмит, то объедените всё в одну форму...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у вас два id="form-category" это недопустимо,

ну и поэтому передается, только первая(одна) форма.

 

Смотрите что передается в $this->request->post

а так же, вам следует каждой форме придать свои id и соответственно сабмит для каждой, если же один сабмит, то обедените всё в одну форму...

 

Спасибо. Я делал отдельными формами. Сейчас я засунул все в одну форму и получилось. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Kolbaska
      привет , кто нибудь знает есть  ли какой нибудь модуль на opencart 1.5.6.4 который давал бы скидку на какой нибудь товар при покупки абсолютно другого?
    • От kJlukOo
      300.00 руб
      Скачать/Купить дополнение


      CART CACHE - кэшируем корзину (cart.php => getProducts)
      в опенкарте есть метод getProducts библиотеки cart.php
      этот метод вовзращает содержимое корзины для текущего пользователя
      на боевом магазине обычно этот метод вызывается 50+ раз
      соответственно происходит избыточная нагрузка на бд и на сайт в целом
      этот модуль кэширует возвращаемые данные до изменения корзины. те вместо 50+ раз метод отработает 1 раз,
      закэширует данные и одаст следующим 49+ 
      кэш хранится в сессии на стороне сервера(очевидно)
      данное кеширование используется в моем модуле
       
      Добавил kJlukOo Добавлено 25.08.2018 Категория Модули Системные требования Сайт разработчика https://awaro.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
    • От kJlukOo
      в опенкарте есть метод getProducts библиотеки cart.php
      этот метод вовзращает содержимое корзины для текущего пользователя
      на боевом магазине обычно этот метод вызывается 50+ раз
      соответственно происходит избыточная нагрузка на бд и на сайт в целом
      этот модуль кэширует возвращаемые данные до изменения корзины. те вместо 50+ раз метод отработает 1 раз,
      закэширует данные и одаст следующим 49+ 
      кэш хранится в сессии на стороне сервера(очевидно)
      данное кеширование используется в моем модуле
       
    • От Techno1og
      Заметил в метрике странные метаморфозы - некоторые информационные страницы, то выпадают из поиска, то появляются,хаотично. Хочу найти связь данного явления со своими действиями или действиями модулей, нужно понять к какому модулю принадлежит этот кусок кода и что он выполняет?
       
      У страницы https://site.ru/dostavka.html
      изменился статус в поиске.
      Старый статус: В поиске
      Новый статус: Запрещено элементом noindex
       
      В controller/information.php :
         
       
    • От SPFront
      Здравствуйте, нужна полная интеграция с 1с и оcStore. при заказе товара он списывался  с сайта, отправялся в 1с как заказ, выгрузка товаров по цене, кол-ву
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.