Помощь с TWIG в VIEWS

Главные вкладки

Аватар пользователя leha373 leha373 25 июня 2021 в 17:52

Привет всем! Нужна помощь организовать цикл в представление. Суть вот в чем.
У меня есть поля вебформы: webform_submission_value, webform_submission_value_1, webform_submission_value_2 ....... webform_submission_value_29 (радиокнопка), может принимать значения "Да", "Иногда" и "Нет" . Мне надо подсчитать сколько значений ДА,ИНОГДА,НЕТ
Пытаюсь написать цикл по этим полям, но походу что то ни так. Вот код

{% set n = 0 %}
{% set na = 0 %}
{% set nav = 0 %}
{% for number in webform_submission_value .. webform_submission_value_29 %}
 {% if number == 'Да' %}
          {% set na = na +1 %}
    {% elseif number == 'Иногда' %}
          {% set nav = nav + 1 %}
    {% else %}
          {% set n = n + 1 %}
    {% endif %}
{% endfor %}
{{na}}
{{nav}}
{{n}}

Это все в VIEWS
Ничего не получается. В чем ошибка? Подскажите пож. Спасибо

Комментарии

Аватар пользователя ivnish ivnish 25 июня 2021 в 17:55

leha373 wrote: В чем ошибка?

Возможно неверно поставлена задача. Для чего всё это нужно? Может проще посчитать с помощью JS?

Аватар пользователя marassa marassa 25 июня 2021 в 18:31

leha373 wrote: В чем ошибка?

Полагаю, что в
{% for number in webform_submission_value .. webform_submission_value_29 %}

leha373 wrote: мне надо перебрать все поля в цикле

ivnish wrote: Возможно неверно поставлена задача. Для чего всё это нужно? Может проще посчитать с помощью JS?

Аватар пользователя leha373 leha373 25 июня 2021 в 19:36



Вот мои поля в views
В поле пользовательский текст пытаюсь добавить

Можно как то организовать цикл по этим полям? Или каждое поле проверять по отдельности?

Аватар пользователя leha373 leha373 25 июня 2021 в 19:45

Или как прямо в вебформе проверять, а потом все подсчитать и вывести?То есть если выбрано "Да" присвоить значение 1, "Иногда" присвоить значение 2, "Нет" присвоить значение 3, можно в скрытом поле?

Аватар пользователя gun_dose gun_dose 26 июня 2021 в 0:13

Может быть вам надо в вопросах сделать "да/нет" радиокнопками? В радиокнопках можно присваивать опциям какие угодно значения

Аватар пользователя leha373 leha373 26 июня 2021 в 7:59

Да у меня и сделано радиокнопками.

Вот
И суть в том, таких вопросов 30. И надо вывести результат в зависимости сколько ответов "да,нет и иногда". Если выбрано Да - 1балл, Иногда - 2балла, Нет - 3 балла. Потом это все сложить, и если, например, в Сумме 35 баллов - один блок (или надпись), 60-75балолов, другой блок,75 и больше 3 блок, вот суть

Аватар пользователя leha373 leha373 26 июня 2021 в 8:03

Потом я вывожу результат в модальном окне через представление. И в этом представление хочу все подсчитать с помощью TWIG. Но не могу понять как сделать цикл. Я могу проверить каждое поле, и это работает. Но очень много кода.
ААА наверно все поля можно засунуть в массив и потом пройтись по массиву циклом? Так можно сделать?

Аватар пользователя leha373 leha373 26 июня 2021 в 10:16

Все. Решил вопрос.

{% set webforms = [webform_submission_value, webform_submission_value_1, webform_submission_value_2, webform_submission_value_3, webform_submission_value_4, webform_submission_value_5, webform_submission_value_6, webform_submission_value_7, webform_submission_value_8, webform_submission_value_9, webform_submission_value_10, webform_submission_value_11, webform_submission_value_12, webform_submission_value_13, webform_submission_value_14, webform_submission_value_15, webform_submission_value_16, webform_submission_value_17, webform_submission_value_18, webform_submission_value_19, webform_submission_value_20, webform_submission_value_21, webform_submission_value_22, webform_submission_value_23, webform_submission_value_24, webform_submission_value_25, webform_submission_value_26, webform_submission_value_27, webform_submission_value_28, webform_submission_value_29] %}
{% set n = 0 %}
{% set na = 0 %}
{% set nav = 0 %}
{% for area in webforms %}
{% if area == 'Да' %}
          {% set n = n +1 %}
    {% elseif area == 'Иногда' %}
          {% set na = na + 1 %}
    {% else %}
          {% set nav = nav + 1 %}
    {% endif %}
{% endfor %}
{{n}}
{{na}}
{{nav}}