Скрыть пустое значение Value в списке у фильтра (продолжение темы)

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 9 ноября 2021 в 21:35

Всем привет. Предыдущая тема instantcms.ru/forum/nevernoe-otobrazhenie-vypadayuschego-spiska-v-filtre-chistaja-sistema.html#post-345216

После того как у меня все получилось, я обновил систему (так как вышла новая версия) и все перестало работать, хотя все правки делались в созданном шаблоне виджета.

На данный момент создан демо сайт (пустой и без всяких дополнений) Выведено поле в фильтре (фильтр стандартный)  «test». и имеет id — fdg_filter133

В шаблон фильтра прописано 

  1. <?php ob_start(); ?>
  2. <script>
  3. if($device_type != 'desktop'){// на моб
  4. $(function(){
  5. $("#fdg_filter133 option[value='']").remove();
  6. });
  7. };
  8. if($device_type == 'desktop'){// на пк
  9. $(function(){
  10. $("#fdg_filter133 option[value='']").remove();
  11. });
  12. };
  13. </script>
  14. <?php $this->addBottom(ob_get_clean()); ?>

Был и такой вариант

  1. $(function(){
  2. if($device_type != 'desktop'){
  3. $("#fdg_filter133 option[value='']").remove();
  4. } else {
  5. $("#fdg_filter133 option[value='']").remove();
  6. }
  7. });

Переменная $device_type  не пустая, имеет значение и изменяется в зависимости от устройства. Посмотреть можно прямо под фильтром.

В итоге я хочу скрыть пустое значение value на мобильном, это не срабатывает, ошибки в кансоли - 

  1. (индекс):2079 Uncaught ReferenceError: $device_type is not defined
  2. at (индекс):2079

Что делаю не так господа? Почему не видно значение переменной? Хотя по факту оно есть.  На условие для пк прошу внимания не обращать, стоит как прмер). Демо сайт srv92616.ht-test.ru/

#2 9 ноября 2021 в 22:07

Что делаю не так господа?

Плохо копируете уже готовое

Переменная $device_type  не пустая, имеет значение и изменяется в зависимости от устройства.

Ага, доступна, только PHP, а вы её в скрипт пихаете, ещё и объект jQuery из неё сооружаете

Если собираетесь скрывать на телефонах и планшетах:

  1. <?php if($device_type == 'desktop') { //не десктопы ?>
  2. <?php ob_start(); ?>
  3. <script>
  4. $(function(){
  5. $("#fdg_filter133 option[value='']").remove();
  6. });
  7. </script>
  8. <?php $this->addBottom(ob_get_clean()); ?>
  9. <?php } ?>

 

#3 10 ноября 2021 в 00:28

Что делаю не так господа?

Плохо копируете уже готовое

Переменная $device_type  не пустая, имеет значение и изменяется в зависимости от устройства.

Ага, доступна, только PHP, а вы её в скрипт пихаете, ещё и объект jQuery из неё сооружаете

Если собираетесь скрывать на телефонах и планшетах:

  1. <?php if($device_type == 'desktop') { //не десктопы ?>
  2. <?php ob_start(); ?>
  3. <script>
  4. $(function(){
  5. $("#fdg_filter133 option[value='']").remove();
  6. });
  7. </script>
  8. <?php $this->addBottom(ob_get_clean()); ?>
  9. <?php } ?>

 

Олег Васильевич я

Ах вон оно что, я все понял. Век живи век учись))) А ведь была подобная мысль, нет думаю не то и откинул. Спасибо, я учусь)))

#4 10 ноября 2021 в 01:28

 Спасибо

Не за что

 я учусь)))

Темы плодить на форуме?)) Тут вы преуспели

#5 10 ноября 2021 в 08:56

Закрываю.

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.