Передача переменной Javascript в набор инструментов шаблона без формы
Я хотел бы, чтобы второе меню обновлялось динамически в зависимости от текущего выбора первого меню, без отправки пользователем формы.
Я учусь использовать Catalyst Framework с Template Toolkit, и данные для этих меню хранятся в модели, к которой я обращаюсь с использованием директив TT.
Ранее я использовал метод.change() JQuery для получения статуса меню и передачи его в CGI для обработки.
Могу ли я сделать нечто подобное с Template Toolkit? Как передать переменную javascript в директиву TT? Другие решения?
1 ответ
Да, это можно сделать, но важно помнить, что после того, как шаблон будет отображен как HTML, TT больше не играет роли. Похоже, ваш предыдущий опыт работы с CGI поможет вам в этом: .change()
Событие должно запустить действие Catalyst, которое возвращает некоторый контент JSON для вашего меню.
Любые переменные, которые нужно установить заранее, могут быть обработаны через TT, например, не проверено
$(document).ready(function(){
$('#menu1').change(function(){
var menuopt = $(this).val();
$.ajax({
url: "[% c.uri_for('/my/action') %]",
data: "menu1=" + menuopt,
dataType: "json",
type: "GET",
contentType: "application/json; charset=utf-8",
success: function(data) {
$.map(data, function(item) {
// create menu2 here
}
}
});
});
});