Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Отправка Ajax запроса в модуль OpenCart


Recommended Posts

Как передать POST параметр через ajax в файл controller модуля OpenCart ?

 

Есть модуль "latest"  Файл контроллера latest.php, нужно передать туда параметр width через Ajax/Jquery  

 

Как обратится к этому файлу? 

 

Как работать с Ajax знаю, как параметры передать знаю, как принять знаю, но как обратится к нужному файлу в OpenCart?

 

При попытках обращения по "url:' скрипт выдает ошибку  "404 (not found)"

 

Пробовал вот так:

url: 'index.php?route=extension/module/latest', 
url: 'index.php?route=module/latest', 
url: '/catalog/controller/extension/module/latest', 

 

Если перейти на прямую по ссылки: "/catalog/controller/extension/module/latest.php"  выдает ошибку HTTP ERROR 500

Edited by Aky
Link to post
Share on other sites

А что вы хотите потом делать с этим параметром width? 

и какой ответ после запроса хотите получать - json или data?

Link to post
Share on other sites
17 минут назад, Aky сказал:

Как обратится к этому файлу? 

 

к файлу никак. вам следует вызвать public метод, по умолчанию вызывается index()

Link to post
Share on other sites

Мне нужно потом в .tpl вытащить эту ширину и проверить ее значение. 

 

Наверное в "data

 

Сейчас в controller это выглядит вот так:

if (isset($this->request->post['weight'])) {
   $weight = $this->request->post['weight'];
} else {
   $weight = 'TEST';
}

В .tpl сейчас передается "TEST"   Вывожу вот так: 

<?php echo $weight; ?>

 

Link to post
Share on other sites

1 минуту назад, freelancer сказал:

к файлу никак. вам следует вызвать public метод, по умолчанию вызывается index()

Как это сделать через ajax ? 

 

Смотрел пример работы с ajax в файле common.js Но там ссылки открываются хоть и пустые. 

 

Например есть такая ссылка:

index.php?route=product/compare/add

 

Link to post
Share on other sites

3 минуты назад, freelancer сказал:

на 2.3 - index.php?route=extension/module/модуль/метод

 

если просто index.php?route=extension/module/модуль, вызовется index

Link to post
Share on other sites
5 минут назад, freelancer сказал:

на 2.3 - index.php?route=extension/module/модуль/метод

 

 

Пробовал так делать, вот что выдает console

 

/index.php?route=extension/module/lates/index 404 (Not Found)

image.png

Edited by Aky
Link to post
Share on other sites

11 минут назад, spectre сказал:

не lates а latest

 

Опечатка, latest не работает  :)

Link to post
Share on other sites

20 минут назад, freelancer сказал:

значит версия не 2.3

 

Версия ocStore 2.3.0.2.2

Link to post
Share on other sites

6 минут назад, Aky сказал:

 

Опечатка, latest не работает  

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

Link to post
Share on other sites
3 минуты назад, spectre сказал:

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

 

Модуль работает, все выводится как надо. Но нужно отправить параметр width в контроллер. Но ссылка не работает.  А если открыть путь до файла выводится ошибка 500

Link to post
Share on other sites

Только что, spectre сказал:

Надо открывать не catalog controller а через index php route и тп

 

Выводит ошибку 404

Link to post
Share on other sites

окей,

index.php?route=extension/module/latest

нельзя вызвать по http, потому как там в методе index есть Required Parameters

в ранних версиях можно было

Link to post
Share on other sites
4 минуты назад, freelancer сказал:

окей,

index.php?route=extension/module/latest

нельзя вызвать по http, потому как там в методе index есть Required Parameters

в ранних версиях можно было

 

И как быть, что делать ? 

 

Если это имеет значения сайт на "https" .

 

Link to post
Share on other sites

48 минут назад, freelancer сказал:

пишите свой    


public function test() {

}

его и вызывайте

 

 

Получилось, спасибо. Есть продвижение.  

 

Подскажите как теперь передать переменную вo view  -> .tpl ?

 

$this->load->view('extension/module/latest', $data);

 

Edited by Aky
Link to post
Share on other sites

2 минуты назад, Aky сказал:

как теперь передать переменную вo view  -> .tpl ?

$data['value'] = 'value';

 в шабллоне

<?php echo $value; ?>

 

Link to post
Share on other sites
14 минут назад, fanatic сказал:

$data['value'] = 'value';

 в шабллоне


<?php echo $value; ?>

 

 

Так и делаю, но он выдает ошибку.  

 

Undefined variable: width in on line 8  

Notice

      

public function test() {
  $data['width'] = $width;

  return $this->load->view('extension/module/latest', $data);
}

 

 

Edited by Aky
Link to post
Share on other sites

9 минут назад, Aky сказал:

$data['width'] = $width;

естественно, $width не определена

$width = 'value';

 

Link to post
Share on other sites
6 минут назад, fanatic сказал:

естественно, $width не определена


$width = 'value';

 

 

Код не полный, полный выглядит вот так:

public function test() { 
   if (isset($this->request->post['width'])) {
      $width = $this->request->post['width'];
   } else {
       $width = '0';
   } 
 
    $data['width'] = $width; 
    return $this->load->view('extension/module/latest', $data);
}

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By Alexandr15
      Подскажите пожалуйста как в opencart 3 в стандартном (базовом) модуле featured вывести опции товаров
      В файл: modification\catalog\controller\extension\module\featured.php
      добавил код:
      $options = array(); foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { if($option['required']){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] >= 0)) { $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'quantity' => $option_value['quantity'], 'price_prefix' => $option_value['price_prefix'] ); } } $options[] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } } Также в $data['products'][] = array(
      добавил:
      'options' => $options, Для вывода в файле: template\extension\module\featured.twig
      в карточку товара добавил код:
      {% if product.options %} {% for option in product.options %} {% if option.type == 'radio' %} <div class="groupOptionWrap {% if option.required %} required {% endif %}"> <div id="input-option{{ option.product_option_id }}" class='groupOptionElements'> {% for option_value in option.product_option_value %} {% if option_value.quantity == "0" %} <div class="groupOption groupOptionDisable"> {{ option_value.name }} </div> {% else %} <div class="groupOption"> {{ option_value.name }} </div> {% endif %} {% endfor %} </div> </div> {% endif %} {% endfor %} {% endif %} Но это не сработало, просьба подсказать, если кто знает рабочий вариант
      Весь код данного модуля:
      <?php class ControllerExtensionModuleFeatured extends Controller { public function index($setting) { $this->load->language('extension/module/notify_when_available'); $data['text_out_of_stock'] = $this->language->get('text_out_of_stock'); $data['out_of_stock_show'] = $this->config->get('module_notify_when_available_stock'); $data['out_of_stock_notify'] = $this->config->get('module_notify_when_available_notify'); $this->load->language('extension/module/featured'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['products'] = array(); if (!$setting['limit']) { $setting['limit'] = 4; } if (!empty($setting['product'])) { $lang = $this->config->get('config_language_id'); $title = isset($setting['titles']['title'.$lang]) && $setting['titles']['title'.$lang] ? $setting['titles']['title'.$lang] : ''; if (isset($title) && $title) { $data['heading_title'] = $title; } if (isset($setting['shuffle']) && $setting['shuffle']) { shuffle($setting['product']); } $products = array_slice($setting['product'], 0, (int)$setting['limit']); foreach ($products as $product_id) { $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if ($product_info['image']) { $image = $this->model_tool_image->resize($product_info['image'], $setting['width'], $setting['height']); } else { $image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); $data['priceInt'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')); } else { $price = false; } $specialSavings =0; if ((float)$product_info['special']) { $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); $data['specialInt'] = $this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')); $data['specialSavings'] = round((($data['priceInt']-$data['specialInt'])/$data['priceInt'])*100, 2); $specialSavings = $data['specialSavings']; } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = $product_info['rating']; } else { $rating = false; } $options = array(); foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { if($option['required']){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] >= 0)) { $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'quantity' => $option_value['quantity'], 'price_prefix' => $option_value['price_prefix'] ); } } $options[] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } } $data['products'][] = array( 'product_id' => $product_info['product_id'], 'quantity' => $result['quantity'], 'quantity' => $product_info['quantity'], 'quantity' => isset($result['quantity']) ? $result['quantity'] : (isset($product_info['quantity']) ? $product_info['quantity'] : 1), 'attribute_groups' => $this->model_catalog_product->getProductAttributes($product_info['product_id']), 'thumb' => $image, 'name' => $product_info['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'specialSavings' => $specialSavings, 'tax' => $tax, 'rating' => $rating, 'options' => $options, 'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']) );  
       
    • By Leingard
      Все мы хотим, чтоб в нашем магазине  покупали как можно больше товаров! Увеличение конверсии - главная цель каждого владельца магазина. Данный модуль создан как раз для этой цели.
      При помощи функционала данного модуля, Вы сможете наполнить Ваши товары интересными отзывами, которые окажут положительное влияние на клиента и обеспечат дополнительный стимул заказать именно у Вас.
       
      Возможности:
      Выбор товаров в которые добавлять отзывы Кнопка "Добавить положительные отзывы" - добавит в список отзывы из встроенной базы Неограниченное количество отзывов, которые можно добавить как в один товар, так и в несколько Укажите имена пользователей и отзывы добавятся от их имени. (Можно указать всего 1 имя). Диапазон дат - позволяет добавить отзывы равномерно, между выбранными промежутками, что создаст видимость постоянно добавления отзывов Возможность выбрать оценку, с которой добавятся отзывы Возможность выбрать статус добавляемых отзывов  
      Демо: 
      Админка: http://gameshara.ru/module/admin/ (demo, demo) Фронт: http://gameshara.ru/module/index.php?route=product/product&product_id=43  
      Активация:
      Напишите автору модуля после покупки: https://opencartforum.com/profile/17442-leingard/  
      Дополнительно:
      Отзывы добавляются в случайном порядке и не дублируются в выбранных товарах. Т.е. если у Вас выбрано 2 товара и 10 отзывов, то в каждый товар попадёт по 5 отзывов.  
      Лицензия:
      Модуль продается с лицензией на сайт. Одна покупка = Один домен Покупая копию модуля вы получаете право на использование. Распространения модуль платно или бесплатно нарушает лицензию и грозит обнулением покупки, а так же уголовной ответственность предусмотренной статей 146 УК РФ (Нарушение авторских и смежных прав)  Автор оставляет за собой право изменят условия предоставления лицензии, изменения цены и стоков продления лицензии. Все доработки, переработки и изменения функционала не входят в стоимость модуля и оплачиваются отдельно по письменной договоренности с автором.  
      Тип распространения:
      Как есть
    • By Leingard
      750
      Скачать/Купить дополнение


      FakeReviews PRO - генерация отзывов для товаров
      Все мы хотим, чтоб в нашем магазине  покупали как можно больше товаров! Увеличение конверсии - главная цель каждого владельца магазина. Данный модуль создан как раз для этой цели.
      При помощи функционала данного модуля, Вы сможете наполнить Ваши товары интересными отзывами, которые окажут положительное влияние на клиента и обеспечат дополнительный стимул заказать именно у Вас.
       
      Возможности:
      Выбор товаров в которые добавлять отзывы Кнопка "Добавить положительные отзывы" - добавит в список отзывы из встроенной базы Неограниченное количество отзывов, которые можно добавить как в один товар, так и в несколько Укажите имена пользователей и отзывы добавятся от их имени. (Можно указать всего 1 имя). Диапазон дат - позволяет добавить отзывы равномерно, между выбранными промежутками, что создаст видимость постоянно добавления отзывов Возможность выбрать оценку, с которой добавятся отзывы Возможность выбрать статус добавляемых отзывов  
      Демо: 
      Админка: http://gameshara.ru/module/admin/ (demo, demo) Фронт: http://gameshara.ru/module/index.php?route=product/product&product_id=43  
      Активация:
      Напишите автору модуля после покупки: https://opencartforum.com/profile/17442-leingard/  
      Дополнительно:
      Отзывы добавляются в случайном порядке и не дублируются в выбранных товарах. Т.е. если у Вас выбрано 2 товара и 10 отзывов, то в каждый товар попадёт по 5 отзывов.  
      Лицензия:
      Модуль продается с лицензией на сайт. Одна покупка = Один домен Покупая копию модуля вы получаете право на использование. Распространения модуль платно или бесплатно нарушает лицензию и грозит обнулением покупки, а так же уголовной ответственность предусмотренной статей 146 УК РФ (Нарушение авторских и смежных прав)  Автор оставляет за собой право изменят условия предоставления лицензии, изменения цены и стоков продления лицензии. Все доработки, переработки и изменения функционала не входят в стоимость модуля и оплачиваются отдельно по письменной договоренности с автором.  
      Тип распространения:
      Как есть Добавил Leingard Добавлено 23.01.2018 Категория Блоги, новости, статьи Системные требования Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      Не проверялось Обращение к серверу разработчика Да  
    • By Leingard
      750
      Скачать/Купить дополнение


      FakeOrders 1.5.1 PRO - имитация заказов на сайте
      Интерактивный модуль имитации заказов на сайте, который значительно повысит доверие Ваших клиентов к Вашему сайту!
       
      Модуль повышает доверие Ваших клиентов, путём имитации заказов на Вашем сайте. Клиенты видят, как в данный момент совершаются заказы на Вашем сайте реальных товаров, на которые они могут перейти и убедится в этом
       
      Посмотреть демо работы модуля OcStore 2.3 (установлено 8 секунд)
      Просмотреть демо работы модуля OcStore 2.1 (Установлено 6 секунд)
      Демо админ. панели (demo, demo) OcStore 2.3
       
      Версия для OpenCart 3
       
      Особенности:
      Быстрая скорость работы Использует актуальную информацию о Ваших товарах Возможность выбора категории из которой будут отображаться товары для имитации заказов (свой набор товаров) Возможность задать интервал для отображения (NEW) Возможность задать ценовую политику товаров для отображения (NEW) Разрешить / запретить показывать товары с ценой "0" (NEW) Разрешить / запретить показывать товары с количеством "0" (NEW) Возможность указать позицию отображения Возможность задать свой отступ отображения блока Удобная графическая настройка всех элементов модуля Поддержка практически любых нестандартных тем Повышает доверие к Вашему сайту с первых минут пребывания на нем  
      Приобретая модуль сейчас, в следующих дополнениях Вы бесплатно получите:
       
      3 вида анимации появления и исчезания 3 вида тем оформления (Классическая, Новогодняя, Современная)  
      Инструкция:
      Установите и настройте модуль по Вашим пожеланиям Выведите через схемы на любую страницу в любом расположении  
      Сложность установки и настройки: Лёгкая
       
      Обновление 1.5
      Добавлена возможность отображения общего количества покупок товара (Купили N раз) Добавлена возможность включения / выключения товаров со статусом "выключен" (FIX если у Вас отображались товары с ценой 0) Теперь вся анимация модуля воспроизводится на CSS5, вместо JS (анимация стала легче и быстрее) Исправлена неполадка при которой товары выводились из одной категории некорректно Исправлена неполадка с повторением анимации одинаковых товаров Добавлена проверка цены на все возможные скидки и акции Добавлены подсказки для некоторых пунктов настроек  
      Обновление 1.4
      Оптимизирована работа скриптов вывода Исправлена неполадка при вызове товара из выключенной категории Обновление 1.3
      Возможность задать интервал для отображения (NEW) Возможность задать ценовую политику товаров для отображения (NEW) Разрешить / запретить показывать товары с ценой "0" (NEW) Разрешить / запретить показывать товары с количеством "0" (NEW)  
      Обновление 1.2
      Добавлена возможность выбрать категорию из которой будут отображаться товары для имитации заказов (свой набор товаров) Добавлена возможность указать позицию отображения Добавлена возможность задать свой отступ отображения блока Дополнительная оптимизация Исправления совместимости с некоторыми популярными темами  
      Обновление 1.1
      OpenCart/OcStore 2.2 Opencart/OcStore 2.1  
       
      Лицензия:
      Модуль продается с лицензией на сайт. Одна покупка = Один домен Покупая копию модуля вы получаете право на использование. Распространения модуль платно или бесплатно нарушает лицензию и грозит обнулением покупки, а так же уголовной ответственность предусмотренной статей 146 УК РФ (Нарушение авторских и смежных прав)  Автор оставляет за собой право изменят условия предоставления лицензии, изменения цены и стоков продления лицензии. Все доработки, переработки и изменения функционала не входят в стоимость модуля и оплачиваются отдельно по письменной договоренности с автором.  
      Тип распространения:
      Как есть Добавил Leingard Добавлено 20.12.2017 Категория Покупки, оформление заказа, корзина Системные требования bootstrap Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1 Обращение к серверу разработчика Нет  
    • By Leingard
      Интерактивный модуль имитации заказов на сайте, который значительно повысит доверие Ваших клиентов к Вашему сайту!
       
      Модуль повышает доверие Ваших клиентов, путём имитации заказов на Вашем сайте. Клиенты видят, как в данный момент совершаются заказы на Вашем сайте реальных товаров, на которые они могут перейти и убедится в этом
       
      Посмотреть демо работы модуля OcStore 2.3 (установлено 8 секунд)
      Просмотреть демо работы модуля OcStore 2.1 (Установлено 6 секунд)
      Демо админ. панели (demo, demo) OcStore 2.3
       
      Версия для OpenCart 3
       
      Особенности:
      Быстрая скорость работы Использует актуальную информацию о Ваших товарах Возможность выбора категории из которой будут отображаться товары для имитации заказов (свой набор товаров) Возможность задать интервал для отображения (NEW) Возможность задать ценовую политику товаров для отображения (NEW) Разрешить / запретить показывать товары с ценой "0" (NEW) Разрешить / запретить показывать товары с количеством "0" (NEW) Возможность указать позицию отображения Возможность задать свой отступ отображения блока Удобная графическая настройка всех элементов модуля Поддержка практически любых нестандартных тем Повышает доверие к Вашему сайту с первых минут пребывания на нем  
      Приобретая модуль сейчас, в следующих дополнениях Вы бесплатно получите:
       
      3 вида анимации появления и исчезания 3 вида тем оформления (Классическая, Новогодняя, Современная)  
      Инструкция:
      Установите и настройте модуль по Вашим пожеланиям Выведите через схемы на любую страницу в любом расположении  
      Сложность установки и настройки: Лёгкая
       
      Обновление 1.5
      Добавлена возможность отображения общего количества покупок товара (Купили N раз) Добавлена возможность включения / выключения товаров со статусом "выключен" (FIX если у Вас отображались товары с ценой 0) Теперь вся анимация модуля воспроизводится на CSS5, вместо JS (анимация стала легче и быстрее) Исправлена неполадка при которой товары выводились из одной категории некорректно Исправлена неполадка с повторением анимации одинаковых товаров Добавлена проверка цены на все возможные скидки и акции Добавлены подсказки для некоторых пунктов настроек  
      Обновление 1.4
      Оптимизирована работа скриптов вывода Исправлена неполадка при вызове товара из выключенной категории Обновление 1.3
      Возможность задать интервал для отображения (NEW) Возможность задать ценовую политику товаров для отображения (NEW) Разрешить / запретить показывать товары с ценой "0" (NEW) Разрешить / запретить показывать товары с количеством "0" (NEW)  
      Обновление 1.2
      Добавлена возможность выбрать категорию из которой будут отображаться товары для имитации заказов (свой набор товаров) Добавлена возможность указать позицию отображения Добавлена возможность задать свой отступ отображения блока Дополнительная оптимизация Исправления совместимости с некоторыми популярными темами  
      Обновление 1.1
      OpenCart/OcStore 2.2 Opencart/OcStore 2.1  
       
      Лицензия:
      Модуль продается с лицензией на сайт. Одна покупка = Один домен Покупая копию модуля вы получаете право на использование. Распространения модуль платно или бесплатно нарушает лицензию и грозит обнулением покупки, а так же уголовной ответственность предусмотренной статей 146 УК РФ (Нарушение авторских и смежных прав)  Автор оставляет за собой право изменят условия предоставления лицензии, изменения цены и стоков продления лицензии. Все доработки, переработки и изменения функционала не входят в стоимость модуля и оплачиваются отдельно по письменной договоренности с автором.  
      Тип распространения:
      Как есть
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.