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

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


Aky

Recommended Posts

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

дефолтный говнокод

 

1 час назад, OCdevWizard сказал:

+костыль, если не проверить существует ли такая переменная в сессии то получите ошибку. Странный подход конечно...

 

 

 

1 час назад, OCdevWizard сказал:

так а счего трогать контроллер если можно и на js узнать ширину окна и потом делать с этим значением подальшую обработку.

 

1 час назад, OCdevWizard сказал:

так рождаются костыли.

 

Как сделать лучше ? 

 

 

У меня в шаблоне написан код 

<?php for ($i = 0; $i <= count($products)-1; $i+=3) { ?>

 

Нужно сюда написать проверку :

<?php if(ширина >= 320) { тут ныжный код } ?>

 

Поэтому я решил передать ширину через JS и Ajax. Было бы проще если бы в php был параметр передающий ширину браузера.  

 

Через сессию,  но в таком случае передается предыдущий параметр а не действительный. Если делать так то нужно запустить ajax быстрей чем сработает conntroller view();

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


4 часа назад, Aky сказал:

Было бы проще если бы в php был параметр передающий ширину браузера

php, не может определить ширину браузера

4 часа назад, Aky сказал:

нужно запустить ajax быстрей чем сработает conntroller view();

что-то мне подсказывает, что вы не понимаете как работает ajax

ajax отправляется с клиента(браузера), следовательно, код php формирующий страницу, уже отработал и умер.

а вы, как я понимаю, хотите передать аяксом данные в код, формирующий страницу. или я не так понял?

 

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

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

что-то мне подсказывает, что вы не понимаете как работает ajax

ajax отправляется с клиента(браузера), следовательно, код php формирующий страницу, уже отработал и умер.

а вы, как я понимаю, хотите передать аяксом данные в код, формирующий страницу. или я не так понял?

 

 

Верно, передать ajax-ом данные в php код, и вывести эту страницу с уже полученными данными. 

 

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

php, не может определить ширину браузера

 

Поэтому и приходится придумывать что либо. 

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


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

Верно, передать ajax-ом данные в php код, и вывести эту страницу с уже полученными данными. 

еще раз повторяю, сначала формируется страница(php), передается в браузер,  а потом с браузера посылается аякс

у вас есть модуль  latest.   вывод его, формируется вместе с html всей страницы. и послать аякс запрос в модуль,  можно только после того, как страница будет открыта в браузере.

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

2 часа назад, fanatic сказал:

еще раз повторяю, сначала формируется страница(php), передается в браузер,  а потом с браузера посылается аякс

у вас есть модуль  latest.   вывод его, формируется вместе с html всей страницы. и послать аякс запрос в модуль,  можно только после того, как страница будет открыта в браузере.

 

Я могу подгрузить "контент" через ajax, почему бы мне не передать туда переменную, в контроллер и вызвать его заново уже с переменной ? 

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


2 часа назад, Aky сказал:

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

да без проблем.  передали аяксом переменную, php обработал запрос, вернул ответ.  и выводите этот ответ на клиенте с помощью js. сами по себе,  

изменения не произойдут.

в ответ на аякс запрос, сервер возвращает какие-то данные клиенту,  и все.  дальше дело js

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

12 часов назад, OCdevWizard сказал:

так а счего трогать контроллер если можно и на js узнать ширину окна и потом делать с этим значением подальшую обработку.

вот именно.  передали данные на клиент, а там уже  выводим как нужно,  в зависимости от разрешения экрана(css.  js)

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

9 часов назад, fanatic сказал:

вот именно.  передали данные на клиент, а там уже  выводим как нужно,  в зависимости от разрешения экрана(css.  js)

 

В файле .tpl написанный код на php 

<?php for ($i = 0; $i <= count($products)-1; $i+=3) { ?>

Тут нужно сделать проверку ширины экрана, подскажите как это сделать? 

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


2 часа назад, Aky сказал:

В файле .tpl написанный код на php 


<?php for ($i = 0; $i <= count($products)-1; $i+=3) { ?>

Тут нужно сделать проверку ширины экрана, подскажите как это сделать? 

 

вы же выше сами уже писали

21 час назад, Aky сказал:

Оказывается можно было написать вот так: В latest.tpl

 


<?php $width = " <script>document.write(window.outerWidth); </script>"; ?>

  <?php if ( $width <= '320' ) {  ?>

  <?php } ?>

 

 

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

Может стоит вообще написать задачу, что хотите сделать. Для каких целей эти все махинации. Может реально все проще на js это реализовать.

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

8 минут назад, Bn174uk сказал:

Может стоит вообще написать задачу, что хотите сделать. Для каких целей эти все махинации. Может реально все проще на js это реализовать.

 

Нужна проверка ширины экрана, если 320px то показать один слайд если больше то два слайда. 

 

Код вывода количества слайдов написан на PHP

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


@media screen and (min-width: 320px){

......

}

Ну или если совсем уже никак с css, то просто на js реализовать(причем даже не надо с php кодом работать в формате "<?php $width  =" обращайтесь к html-элементам, то есть к тому самому DOM, с которым js и работает).

 Нафига вам для решения чисто визуальных задач php использовать.

Зачем за этим лезть в контроллер? Нужно же просто показать или скрыть блок. Может еще в модель заглянем и будем sql запросы в зависимости от ширины экрана формировать?

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


18 минут назад, spyOn сказал:

@media screen and (min-width: 320px){

......

}

Ну или если совсем уже никак с css, то просто на js реализовать(причем даже не надо с php кодом работать в формате "<?php $width  =" обращайтесь к html-элементам, то есть к тому самому DOM, с которым js и работает).

 Нафига вам для решения чисто визуальных задач php использовать.

Зачем за этим лезть в контроллер? Нужно же просто показать или скрыть блок. Может еще в модель заглянем и будем sql запросы в зависимости от ширины экрана формировать?

 

Окей. Как это реализовать на JS ?

 

Есть слайд:

item3.png

 

Надо что бы в мобильной версии эти три DIV (left_item, center_item, right_item) были как item.

 

item1.png

 

То есть если у нас на ПК 3 слайда в мобильном должно быть 9.

 

 

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


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

Код вывода количества слайдов написан на PHP

так перепишите.  php формирует html со всеми слайдами.

далее css media, или js

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

а еще у owlcarousel есть настройка кол-ва слайдов в зависимости от разрешения

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

В 20.09.2018 в 13:09, Aky сказал:

Оказывается можно было написать вот так: В latest.tpl

 


<?php $width = " <script>document.write(window.outerWidth); </script>"; ?>

  <?php if ( $width <= '320' ) {  ?>

  <?php } ?>

 

 

вы не понимаете насколько это кретинизм?

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

а чо, прикольно

а можно еще грузить 2 варианта для 320 и без и один из них скрывать )

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

@Aky

Напишите толком какую структуру вы хотите видеть в мобильной версии!

Сейчас у вас есть:

owl-item

-item

--left_item

--center_item

--right_item

А что на мобильной должно быть?

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


16 минут назад, spyOn сказал:

@Aky

Напишите толком какую структуру вы хотите видеть в мобильной версии!

Сейчас у вас есть:

owl-item

-item

--left_item

--center_item

--right_item

А что на мобильной должно быть?

 

 

 item1_2.png

 

 

item1_3.png

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


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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