Jump to content
Sign in to follow this  
Taekun

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

Recommended Posts

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

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

Ситуация следующая: создал модуль для ОС 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');
}

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

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

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

 

Share this post


Link to post
Share on other sites

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By erikocart
      Всем доброго времени суток)
      Подскажите пжл, я хочу сделать магазин по продаже шаблонов для сайтов и мне нужен функционал с возможностью просмотра демки сайта перед покупкой.
      Я хочу реализовать это отдельной кнопкой в карточке товара. Я понимаю что могу сделать ссылку в описании, но это не то. Мне нужно, чтобы после нажатия кнопки, открывалось отдельное окошко, где можно проверить сайт на разных разрешениях экрана.
      Вот идеальный пример того, как я хочу -> https://landistore.com/templates/ecommerce/  
      Я уже спросил у разрабов про такую возможность, они сказали искать модуль.
      Вообщем кто может помочь с этим вопрос, очень прошу помогите.
      Заранее говорю про этот движок -> https://maxystore.com/relizy-digistore/marketplace-digistore.html то, что он не интересен и поэтому про него не пишите) Спасибо!
    • By Sunser
      300.00 руб
      Скачать/Купить дополнение


      Sunser Callback - форма обратной связи
      Sunser Callback - форма обратной связи, расширение созданное для Opencart и ocStore.

      Расширение подходит и тестировалось на версиях Opencart 2.0, 2.1, 2.2 и 2.3.
      Так же подойдет для OpencartPro версии 2.0, 2.1, 2.2 и 2.3

      Расширение подходит и тестировалось на версиях ocStore 2.1 и 2.3, не тестировалось с версией 2.2
      -- Расширение легкое в установке. Просто в своей админке загрузите файл который вы скачали для своей версии через менеджер дополнений, после чего обновите модификатор.
      Как на самом сайте вызвать форму при нажатии?
      После установки расширения, просто в ту кнопку, ссылку, тег, где вам нужно что бы при нажатии вызывалась форма, вставте этот код - onclick="sunserCallback(event)"
      После чего при нажатии будет вызывать форма.
      Расширение сделано так что бы не грузить сайт, не добавлять свои js файлы в header.
      Расширение имеет свой шаблон для отправки писем. Если вы верстальщик или разработчик, то вы можете менять стиль писем.
      Если вы не разработчик и хотите изменить письмо, то вы можете написать на почту, которая указано ниже для доработки письма, за небольшую плату.
      Так же если вы разработчик или верстальщик, вы можете легко менять стиль всплывающей формы
       
      -- Расширение поддерживает мультиязычность и имеет свой шаблон отправки писем. То есть если сайт на английском, то уведомление на почту придет на английском, если на русском, уведомление на почту придет на русском.
      Проблемы и решения после установки:
      -- Приложение установлено, все поля заполнены. Но при нажатии отправить, ничего не происходит.
      В таком случае, первое, это проверьте чтобы в настройках почты были заполненные поля тема письма, заголовок и кому отправлять.
      -- Настроил все и нажал сохранить, после чего при нажатии кнопки форма не вызывается.
      В таком случае проверте что сам модуль включен в настройках.
      И если это не помогает, то проблемы могут быть в самом модификаторе. Он не находит тех путей что в нем указано, поскольку вы что-то меняли в контролерах своего сайта.
       
      Если вы замечаете баги по форме, пишите автору и в ближайшие время проблема исправится и зальется свежая версия, после чего вы сможете скачать и обновить модуль
      Если вы установили модуль, настроили и модуль не работает и сделали и переделали все, что указано выше при проблемах установки, то пишите автору.
       
      Добавил Sunser Добавлено 28.07.2019 Категория Обратная связь, звонки Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1 Обращение к серверу разработчика Нет  
    • By Sunser
      Sunser Callback - форма обратной связи, расширение созданное для Opencart и ocStore.

      Расширение подходит и тестировалось на версиях Opencart 2.0, 2.1, 2.2 и 2.3.
      Так же подойдет для OpencartPro версии 2.0, 2.1, 2.2 и 2.3

      Расширение подходит и тестировалось на версиях ocStore 2.1 и 2.3, не тестировалось с версией 2.2
      -- Расширение легкое в установке. Просто в своей админке загрузите файл который вы скачали для своей версии через менеджер дополнений, после чего обновите модификатор.
      Как на самом сайте вызвать форму при нажатии?
      После установки расширения, просто в ту кнопку, ссылку, тег, где вам нужно что бы при нажатии вызывалась форма, вставте этот код - onclick="sunserCallback(event)"
      После чего при нажатии будет вызывать форма.
      Расширение сделано так что бы не грузить сайт, не добавлять свои js файлы в header.
      Расширение имеет свой шаблон для отправки писем. Если вы верстальщик или разработчик, то вы можете менять стиль писем.
      Если вы не разработчик и хотите изменить письмо, то вы можете написать на почту, которая указано ниже для доработки письма, за небольшую плату.
      Так же если вы разработчик или верстальщик, вы можете легко менять стиль всплывающей формы
       
      -- Расширение поддерживает мультиязычность и имеет свой шаблон отправки писем. То есть если сайт на английском, то уведомление на почту придет на английском, если на русском, уведомление на почту придет на русском.
      Проблемы и решения после установки:
      -- Приложение установлено, все поля заполнены. Но при нажатии отправить, ничего не происходит.
      В таком случае, первое, это проверьте чтобы в настройках почты были заполненные поля тема письма, заголовок и кому отправлять.
      -- Настроил все и нажал сохранить, после чего при нажатии кнопки форма не вызывается.
      В таком случае проверте что сам модуль включен в настройках.
      И если это не помогает, то проблемы могут быть в самом модификаторе. Он не находит тех путей что в нем указано, поскольку вы что-то меняли в контролерах своего сайта.
       
      Если вы замечаете баги по форме, пишите автору и в ближайшие время проблема исправится и зальется свежая версия, после чего вы сможете скачать и обновить модуль
      Если вы установили модуль, настроили и модуль не работает и сделали и переделали все, что указано выше при проблемах установки, то пишите автору.
       
    • By NetGonTech
      [27.05.19] Поддержка модуля через opencartforum.com приостановлена. По вопросам пишите на netgon@netgon.ru или в skype doomer_gg (логин) / ищите нас на других OpenCart площадках.
       
      Редактировать карточки товаров в OpenCart неудобно из-за добавления дополнительных изображений товаров. С версии OpenCart 2.3 создатели включили возможность загрузки нескольких изображений на сервер через FileManager. Но добавлять несколько изображений к карточке товара все так же не удобно. Модуль NetGon Product Images MultiSelect позволяет добавлять несколько изображений к товару в один клик.

      На скринкасте показано как легко и удобно это можно сделать:
      https://www.useloom.com/share/3721a24372d64250a8de8605c99bec3e

      Как установить:

      Содержимое папка upload архива загрузить на сервер и обновить кэш модификаций.
       
      Совместим:
      3.0.2.0
      2.3
    • By NetGonTech
      Скачать/Купить дополнение


      NetGon Product Images MultiSelect
      [27.05.19] Поддержка модуля через opencartforum.com приостановлена. По вопросам пишите на netgon@netgon.ru или в skype doomer_gg (логин) / ищите нас на других OpenCart площадках.
       
      Редактировать карточки товаров в OpenCart неудобно из-за добавления дополнительных изображений товаров. С версии OpenCart 2.3 создатели включили возможность загрузки нескольких изображений на сервер через FileManager. Но добавлять несколько изображений к карточке товара все так же не удобно. Модуль NetGon Product Images MultiSelect позволяет добавлять несколько изображений к товару в один клик.

      На скринкасте показано как легко и удобно это можно сделать:
      https://www.useloom.com/share/3721a24372d64250a8de8605c99bec3e

      Как установить:

      Содержимое папка upload архива загрузить на сервер и обновить кэш модификаций.
       
      Совместим:
      3.0.2.0
      2.3
      Добавил NetGonTech Добавлено 10.11.2017 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3 ocStore 2.3 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.