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

 

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

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От SPFront
      Здравствуйте, нужна полная интеграция с 1с и оcStore. при заказе товара он списывался  с сайта, отправялся в 1с как заказ, выгрузка товаров по цене, кол-ву
    • От Sav1TaRRR
      Всем привет, столкнулся с проблемой установкой модуля Export/Import Tool на локальный сервер. Устанавливал через OCMOD  ,как  было показано в инструкции к модулю . Но поле в Система->Инструменты->Export/Import не появилось.Так же пробовал установить через VQMOD  и ручной установкой. 
      П.с. ocStore 2.3.0.2.3 .
    • От balukoff
      300.00 руб
      Скачать/Купить дополнение


      Стрелки изменения порядка товаров в модуле "Рекомендуемые"
      Обработка добавляет стрелки к стандартному модулю "Рекомендуемые" в административной части opencart для изменения порядка товаров в списке.
      Например, нам нужно, чтобы товар Ipad был выше iMac, но тогда приходится удалять весь список и проходить всю операцию добавления. Однако модуль эту проблему решает.
      Необходим vqmod.
      - Не меняет исходные файлы
      - Использует "легкую" модель изменения DOM-структуры "на лету"
      - Сохранение модуля и вывод в шаблон - в стандартном режиме
      - Возможны доработки и обновления
      - Тестировалось на opencart/ocstore 1.5.x
      - Добавлена поддержка opencart 2.x
      Установка: просто поместите файл featured.xml в каталог vqmod\xml на Вашем сервере
      Для версии 2.x неоходимо установить модификатор через панель администрирования
      Добавил balukoff Добавлено 01.12.2015 Категория Прочее  
    • От savage4pro
      Скачать/Купить дополнение


      Замена символа рубля OCMOD
      Мод заменяет знак валюты рубля на симпатичный почти уже стандартный символ (U+20BD), представленный в наборе глифов шрифта "Roboto" от Christian Robertson.
      Подходит для любого шаблона OpenCart версий 2.0.x, 2.1.x, 2.2.x, 2.3.x при отсутствии прямых модификаций ядра.
      Схема работы:
      добавляет в БД новую таблицу `oc_currency_modsymbols` с одной записью - для валюты с кодом RUB
      на этапе выборки данных о валютах оборачивает оригинальный символ в конструкцию для обработки подключаемыми при загрузке страницы стилями
      не ломает возможность менять оригинальный символ в админке, который будет показан при выводе шаблонов, в которых нет возможности подключать дополнительные стили (например, почтовые уведомления), пробелы до/после оригинального символа выносятся за пределы конструкции, т.е. сохраняются
      после установки можно вручную добавлять записи в таблицу `oc_currency_modsymbols` для форматирования символов валют по желанию (для включения в конечную строку стандартного значения, т.е. для автозамены, вместо него следует указать "_default_symbol_")
      мод можно безболезненно отключать/удалять, функциональность при этом вернется к стандартной
      Установка:
      Бекап!
      загрузить roboto-rouble-symbol-2.5.ocmod.zip через Extensions / Extension Installer
      обновить кэш модификаций на странице Extensions / Modifications
      обновить системный кэш

      Удаление:
      Бекап!
      удалить мод на странице Extensions / Modifications, там же обновить кэш модификаций
      обновить системный кэш
      вручную удалить из БД таблицу `oc_currency_modsymbols`
      вручную удалить файлы catalog/view/theme/default/stylesheet/roboto-forced.css и roboto-forced.min.css
      вручную удалить файлы catalog/view/theme/default/stylesheet/font/google/roboto-subset-latin-ext-*.*
      При обновлении с предыдущих версий рекомендется полное их удаление, но можно удалить сам модификатор и очистить системный кэш и кэш модификаций, данные БД перезапишутся на новые при повторной установке.

      В случае некорректного отображения блока с форматированной ценой (например, вылезающие закрывающие теги вида: руб." />") необходимо в шаблоне, где эта цена выводится, оборачивать её вывод в strip_tags();
      С 2016-11-28 (v.2.5.1) в комплекте идет сабсет (latin-ext, webfont) шрифта Roboto для совместимости с браузерами, которые блокируют подгрузку внешних шрифтов (да, это про тебя, IE9, гори в аду!)
      Добавил savage4pro Добавлено 06.11.2015 Категория Прочее Системные требования Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • От Sha
      300.00 руб
      Скачать/Купить дополнение


      Меню Step By Step
      Menu Step By Step:
      Пошаговое меню для OpenCart, хлебные крошки с выпадающими списками.
      модуль тестировался на ocStore 1.5.5.x.x
      для OpenCart 2.0 здесь >
      ВОЗМОЖНОСТИ:
      - Пошаговый подбор товара (категории товара).
      - Возможность использовать, как хлебные крошки breadcrumb с выпадающими списками (как в total commander).
      - Вертикальный вывод пунктов меню, Горизонтальный вывод пунктов меню. (Опция) NEW
      - Вывести только указанные начальные категории в меню по ID, с "запоминанием", не нужно повторно вводить. (Опция) NEW
      - Возможность указать количество видимых пунктов/шагов по умолчанию. (Опция)
      - Указать <h3> заголовок модуля. (Опция)
      - Скрыть или показать пункты категорий в которых находимся (с помощью стилей)(читаем ниже)
      - Скрыть или показать пункты пустых подкатегорий (с помощью стилей)(читаем ниже)
      ЛОКАЛИЗАЦИЯ:
      - English.
      - Русский.
      - Украинский.
      ПРОСТАЯ УСТАНОВКА:
      Скопировать содержимое папки [upload] в корень движка.
      (структура архива соответствуют структуре папок OpenCart)
      ОБНОВЛЕНИЕ:
      Скопировать содержимое папки [upload] в корень движка, с заменой, поверх старой версии.
      ВАЖНО:
      Дополнение предоставляется по принципу "Как есть", Разработчик НЕ ГАРАНТИРУЕТ отсутствия ошибок, которые могут нарушить работу компьютера и/или сайта и/или привести к потере данных.
      Также, если в код магазина было внесено много изменений, то работоспособность модуля может быть нарушена.
      Использует ajax,
      Модуль совместим с bootstrap, (т.е. классы прописаны, и если на вашем сайте установлен bootstrap, модуль подхватит стили автоматически.)
      Модуль не затирает, не заменяет ни каких файлов движка.
      Тем не менее, рекомендуем перед установкой делать бэкап файлов и базы данных!!!
      Демонстрация магазина
      Демонстрация админки
      имя пользователя: login
      пароль: login
      ЛИЦЕНЗИЯ:
      - скачать модуль можно только на форуме опенкартфорум ком
      - на сайте r.konotop.info представлено полное описание и обсуждение багов или доработок модуля (предлагайте).
      остальные способы распространения Menu Step By Step левые и ни какого отношения к данному модулю не имеют!!!
      - Модуль реализуется по принципу "1 покупка – 1 доменное имя" (для установки на второй свой сайт, необходимо оплатить второй раз, на третий - третий раз купить модуль...)
      - Запрещается передавать файлы модуля третьим лицам, как на платной, так и на безвозмездной основе.
      ТЕХНИЧЕСКАЯ ПОДДЕРЖКА:
      Техническая поддержка доступна только пользователям, из списка покупателей модуля. Если вы обращаетесь с просьбой разобраться в проблеме то, для экономии нашего времени, укажите: 1) адрес сайта, 2) доступ в админ-панель, 3) доступ на FTP-сервер.
      ПОДРОБНЕЕ ДЛЯ РАЗРАБОТЧИКОВ
      Возможность стилизовать:
      - ещё не выбранный пункт (неактивный): class="translucent",
      - пункт совпадающий с любым id из цепочки path=, или по другому breadcrumb: class="here",
      - горизонтальный/вертикальный: class="horizontal", (можно, впринципе, использовать для любой опциональной хотелки)
      - последний в цепочке иерархии категорий, class="last"
      - скрыть или показать пункты категорий в которых находимся
      (например: .ajax-category-container .list-group-1.here{display:none} скроет первый пункт когда мы находимся в категории, но не скроет на главной, и так далее)
      - скрыть или показать пункты пустых подкатегорий (например: .ajax-category-container .last ~ .translucent{display:none} если выбрав один из пунктов он окажется последним в иерархии, то скроет все следующие за ним)
      Изменения
      Добавил Sha Добавлено 17.09.2015 Категория Модули Системные требования Сайт разработчика r.konotop.info Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart ocStore OpenCart.Pro, ocShop  
  • Последние посетители   0 пользователей онлайн

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

×