Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Aky

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

Змінено користувачем Aky
Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах

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

 

Наверное в "data

 

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

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

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

<?php echo $weight; ?>

 

Надіслати
Поділитися на інших сайтах


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

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

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

 

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

 

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

index.php?route=product/compare/add

 

Надіслати
Поділитися на інших сайтах


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

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

 

 

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

 

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

image.png

Змінено користувачем Aky
Надіслати
Поділитися на інших сайтах


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

 

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

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

Надіслати
Поділитися на інших сайтах

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

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

 

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

Надіслати
Поділитися на інших сайтах


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

окей,

index.php?route=extension/module/latest

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

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

 

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

 

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

 

Надіслати
Поділитися на інших сайтах


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

пишите свой    


public function test() {

}

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

 

 

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

 

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

 

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

 

Змінено користувачем Aky
Надіслати
Поділитися на інших сайтах


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

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

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

 в шабллоне

<?php echo $value; ?>

 

Надіслати
Поділитися на інших сайтах

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);
}

 

 

Змінено користувачем Aky
Надіслати
Поділитися на інших сайтах


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

$data['width'] = $width;

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

$width = 'value';

 

Надіслати
Поділитися на інших сайтах

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);
}

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.