Ответить Новая тема Новый опрос 
 Изменение цены
annaoomph
Новичок
Сообщений: 34
Регистрация: 06-06-2015


20-08-2015 03:05
Добрый вечер! Пишу ajax-запрос для обновления цены на странице при увеличении или уменьшении выбранного количества товара (т.к. в настройках стоит цена меньше от 10 товаров, от 20 и т.д.).
Если в переменной num - количество товара, как называется параметр, под которым я должна его передать?

Код:
$.ajax({
url: baseUri,
type: "POST",
data: {"num": num},
async: true,
cache: false,
success: function(response){
if(!response == 0){
    var newPrice = response.find("#getprice").html();
}
}
});



Сообщение отредактировано annaoomph 19-08-2015 23:05 ...
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


20-08-2015 10:31
Невозможно. Нет контроллера который и обработает ваш запрос.

Необходимо дописывать /controllers/front/CartController.php.
Если используется стандартный функционал (без доработок) считайте в скриптах, незачем выполнять подобные запросы.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
annaoomph
Новичок
Сообщений: 34
Регистрация: 06-06-2015


20-08-2015 19:37
Хорошо, тогда такой вопрос: в контроллере ProductController есть функция

Код:
public function getProduct()
    {
        return $this->product;
    }


Как к ней обратиться через ajax-запрос из кода javascript и получить $product?
Как я понимаю, там будет data: 'controller=product&ajax=true', а саму функцию как вызвать?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


20-08-2015 20:34
Откройте файл /controllers/front/ProductController.php и после:
Код:
if ($id_product = (int)Tools::getValue('id_product'))
    $this->product = new Product($id_product, true, $this->context->language->id, $this->context->shop->id);
добавьте:
Код:
if (Tools::getIsset('get'))
    die(json_encode($this->product));


Данные можно забрать:
Код:
id_product=№товара&controller=product&get=true
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
annaoomph
Новичок
Сообщений: 34
Регистрация: 06-06-2015


20-08-2015 20:54
Цитата:( Алекс @ 20-08-2015 16:34 Смотреть сообщение )
Данные можно забрать:
Код:
id_product=№товара&controller=product&get=true


Этот код нужно куда вставить ?
вместо data?
Код:
var id_product = idProduct+'&controller=product&get=true'

или уже в самой функции
success: function(jsonData){ } ?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
annaoomph
Новичок
Сообщений: 34
Регистрация: 06-06-2015


24-08-2015 16:02
Добрый день! Так и не нашла, куда вставить код
var id_product = idProduct+'&controller=product&get=true'
Выдает ошибку в js!
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


24-08-2015 18:57
Файл /themes/тема/js/product.js
Код:
$.ajax({
    type: 'POST',
    headers: { "cache-control": "no-cache" },
    url: baseUri,
    async: true,
    cache: false,
    data: 'controller=product&get=true&id_product=' + parseInt(id_product),
    success: function(jsonData)
    {
        //делаем что-то.
    }
});
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос