Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


Aky
 Погделиться

Рекомендованные сообещёния

Как передать 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?

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

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

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

 

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

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

Мне нужно потом в .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

 

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


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

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

 

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

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

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

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


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

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

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

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

 

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

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


окей,

index.php?route=extension/module/latest

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

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

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

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

 

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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