Можно ли передать массив из jquery в TWIG?

#jquery #twig

#jquery #twig

Вопрос:

У меня есть массив с именем days , извлеченный в jquery:

 Array
(
    [0] => Array
        (
            [value] => 4
            [name] => text_4
        )
    [1] => Array
        (
            [value] => 7
            [name] => text_7
        )
    [2] => Array
        (
            [value] => 10
            [name] => text_10
        )
)
 

И часть шаблона TWIG, где мне нужно получить days :

 <ul id="days">
    {% for day in days %}
        {% if day.value == mean_day  %} 
            <li class="dropdown" > <a href="#" class="night-value selected-value"  value="{{ day.value }}" selected="selected">{{ day.name }}</a></li>
        {% else %} 
            <li class="dropdown"><a href="#"  class="night-value" value="{{ day.value }}">{{ day.name }}</a></li>   
        {% endif %} 
    {% endfor %} 
</ul>
 

Можно перейти days к шаблону TWIG и обновить только этот ul days без перезагрузки всей страницы?

Комментарии:

1. Как вы визуализируете шаблон twig?

2. это шаблоны Opencart twig.sensiolabs.org/documentation

3. это не отвечает на вопрос. Я предполагаю, что, поскольку вы ссылались на стандартные документы php, шаблон отображается на стороне сервера, и в этом случае вы не сможете повторно отобразить шаблон без повторного запроса страницы с сервера. Вам нужно было бы передать параметры из jquery в HTTP-запрос, а сервер должен был бы проанализировать параметры и использовать их в шаблоне

Ответ №1:

Нет. jQuery выполняется на стороне клиента, TWIG выполняется на стороне сервера. Вы можете предоставить переменные на стороне сервера для интерфейса, но вы не можете сделать обратное, потому что, когда интерфейс запускается, серверная часть была завершена.

Обычно вы можете отправлять данные внешнего интерфейса на сервер, используя Ajax, но это не ваш случай.

В любом случае, если у вас есть эта информация на стороне интерфейса, вероятно, она была у вас на стороне сервера.

Комментарии:

1. Спасибо. Да, эти данные у меня также есть на стороне сервера. Но как обновить только это days , не перезагружая всю страницу?

2. Я решил свою проблему, используя автозаполнение jQuery с помощью обратного вызова ajax json….

3. Используя ajax, вы можете сделать запрос к серверу, получить данные и обновить некоторую часть DOM, но больше не использовать TWIG. На стороне клиента больше нет TWIG.

4. Да, я это понимаю. Поэтому, используя пользовательский интерфейс автозаполнения ajax, я просто извлекаю обновленные данные с сервера, не обновляя страницу. Это без разницы TWIG, HTML или что-то еще.