Я играл с Smarty и JQuery ...Запуск Smarty функции, нажав флажок
На самом деле у меня есть проект немного лагера, и я хочу, чтобы улучшить свой источник для лучшего handeling.
Теперь у меня есть HTML-страница (.tpl
) с некоторым контентом. В одной строке у меня есть флажок, как:
<input type="checkbox" aria-label="..." checked>
<button onclick='fnTest({$options})'>test</button>
И потому что я хочу, чтобы вызвать JS-функцию и передать некоторые данные с помощью JSON У меня есть строка на этой странице, которая выглядит как:
{$options = '{"preview":1, "extra_paper":0}'}
что фактически просто создает Smarty-Variable, содержащую JSON-String.
На моем jsFile просто используется console.log()
(на данный момент), чтобы узнать, что прошло.
function fnTest(obj){
console.log(obj);
}
Всем хорошо, пока здесь. Теперь я хочу изменить некоторые из JSON-String, как только я установил/снял флажок.
Проверено:
{$options = '{"preview":1, "extra_paper":1}'}
Неконтролируемый
{$options = '{"preview":1, "extra_paper":0}'}
Я пытался использовать Smarty-Function
{function name=presets}
//some source to write the JSON-String new
{$data}
{/function}
, что называется, как
{presets data="checkstatus"}
, но проблема здесь, я не знаю, как запустить эту функцию на CheckBox действия ...
мая есть другой способ сделать это, что им пытаются сделать ...
Поэтому основными вопросами являются:
Есть ли возможность использовать функцию Smarty в checkbox-event?
Есть ли способ воссоздать JSON-String на шаблоне и передать его функции?
Thx для этого намека. На самом деле мне не нужно это изучать. Как я сказал, это немного большой проект, а 99% нет onClick. Элементы имеют классы, и они привязываются к clickevents. Но в некоторых случаях (очень редко) необходим такой тип кода, потому что в противном случае было бы очень сложно справиться с простой задачей. И чем некоторые другие клиенты могут столкнуться с некоторыми проблемами :) И внедрение кода на самом деле не то, что я хочу. Я буду использовать [sessionstorage] (https://code.google.com/p/sessionstorage/) – Dwza