Перейти к содержанию
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 и соответственно сабмит для каждой, если же один сабмит, то обедените всё в одну форму...

 

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

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От lazuren
      Скачать/Купить дополнение


      Расширенный аккаунт
      Расширенный аккаунт (Extended account v.1.0.1) 
      Модуль выводит на главную страницу личного кабинета всю основную информацию о пользователе и его заказах.
      1. Имя, Фамилия
      2. Клиентская группа
      3. Телефон
      4. E-mail
      5. Бонусные балы
      6. Стандартные ссылки на редактирование (пароль, контактная информация, подписка)
      7. Основной адрес
      8. Закладки
      Таблицы появляются в зависимости от имеющихся данных.
      Особенности
      Не изменяет оригинальных файлов, все реализовано через ocmod.
      Внимание!
      Тестировал только на оригинальном движке Opencart 3 версии.
       
       
      Добавил lazuren Добавлено 08.01.2019 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось  
    • От lazuren
      Расширенный аккаунт (Extended account v.1.0.1) 
      Модуль выводит на главную страницу личного кабинета всю основную информацию о пользователе и его заказах.
      1. Имя, Фамилия
      2. Клиентская группа
      3. Телефон
      4. E-mail
      5. Бонусные балы
      6. Стандартные ссылки на редактирование (пароль, контактная информация, подписка)
      7. Основной адрес
      8. Закладки
      Таблицы появляются в зависимости от имеющихся данных.
      Особенности
      Не изменяет оригинальных файлов, все реализовано через ocmod.
      Внимание!
      Тестировал только на оригинальном движке Opencart 3 версии.
       
       
    • От 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+ 
      кэш хранится в сессии на стороне сервера(очевидно)
      данное кеширование используется в моем модуле
       
  • Последние посетители   0 пользователей онлайн

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

×

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

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