Динамическое добавление классов css в элемент html в php

Я пытаюсь создать приложение, в котором есть много курсов. У каждого курса есть несколько дней (например, 14 дней или для другого курса 20 дней). И чтобы отслеживать это, у меня есть индикатор выполнения шагов, который выглядит так: Динамическое добавление классов css в элемент html в php

Теперь в этом примере 14 дней, которые представляют собой большие кружки со значком замка. Маленькие кружки между ними - это тестовая викторина.

Я использую для этого laravel. Я извлекаю все эти данные из базы данных и создаю этот индикатор выполнения шага следующим образом:

     <ul class = "progressbar">
        @for($i=1;$i< $totalDays->total_days*2;$i++)
          <li class = ""></li>
        @endfor    
     </ul>

Теперь я хочу добавить активный класс к активному дню (в какой день сейчас).

Как это:

<li class = "active"></li>

Как я могу добиться этого в PHP?

Спасибо.

сначала получите текущий день обучения пользователя. затем поместите условие в атрибут класса <li class = "<? php echo ($ i <$ curr_day)? 'active': '';?>"> </li>

Nitin Goyal 10.03.2018 13:03

@NitinGoyal Спасибо за ответ. Добавив этот код, он также добавит активный класс в кружки викторины (маленькие кружки). Я хочу добавить его только в большие круги со значком замка.

Rakesh Kohali 10.03.2018 13:08

добавьте к нему еще условие ... например, $ i% 2! = 0

Nitin Goyal 10.03.2018 13:09

<li class = "{{$ i == $ current_day && $ i% 2! = 0? 'active': ''}}"> </li> вот так

Rakesh Kohali 10.03.2018 13:15

При этом, когда $ current_day - четное число, он никуда не добавляет класс.

Rakesh Kohali 10.03.2018 13:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать сделать это:

<li class = "<?php if ($i/2 == $current_day-0.5) { echo "active"; } ?>"></li>

Он проверяет, равен ли номер дня ($current_day) номеру круга ($i), если да, то добавляет к нему класс active.

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

Rakesh Kohali 10.03.2018 13:08

добавляет ли код класс к правильному большому кругу или к неправильному.

gabrielchl 10.03.2018 13:09

если $ current_day равен 1, он добавляется к первому кругу li. если $ current_day = 2, то он добавит активный класс ко второму маленькому кругу, которого я не хочу

Rakesh Kohali 10.03.2018 13:12

@RakeshKohali Да, я понимаю, редактирование Нитина Гояла должно было решить эту проблему. Кредит ему :)

gabrielchl 10.03.2018 13:13

При этом, когда $ current_day - четное число, он никуда не добавляет класс.

Rakesh Kohali 10.03.2018 13:22

Это тоже не работает, и я думаю, что $ i <= $ current_day будет $ i == $ current_day ??

Rakesh Kohali 10.03.2018 13:44

@RakeshKohali Не могли бы вы опубликовать снимок экрана с результатом выполнения кода? это действительно должно работать, спасибо

gabrielchl 10.03.2018 13:52

Когда результат $current_day = 1: prnt.sc/ipa9g6, когда результат $current_day = 2: prnt.sc/ipaa4d, когда результат $current_day =3: prnt.sc/ipaali Результат $current_day=4: prnt.sc/ipab2l Результат $current_day = 5: prnt.sc/ipabn0

Rakesh Kohali 10.03.2018 14:02

@RakeshKohali, попробуйте следующее: <li class = "<? Php if ($ i * 2-1 == $ current_day) {echo" active ";}?>"> </li>

gabrielchl 10.03.2018 14:20

@RakeshKohali, хорошо, пожалуйста, замените оператор if на это: $i/2 == $current_day-0.5 на 100% уверен, что он работает, извините за все эти неправильные коды

gabrielchl 10.03.2018 14:44

Другие вопросы по теме