ввод токена jquery с помощью PHP

Я использую Jquery Tokeninput в своем проекте для отображения некоторых чисел в текстовом поле. У меня есть скрытое поле ввода, в котором я сохраняю строку JSON, содержащую числа. JSON выглядит так

patents = [{"id":"AT02708872"},{"id":"DE60232348"},{"id":"EP02708872"},{"id":"SE0101087"},{"id":"SE0200504"}] 

на мой взгляд, скрытый ввод

  <input id="appln_nrs" type="hidden" value="{{ patents }}" />

В том же представлении я передаю значение этого ввода в свой JQuery Tokeninput как

<script type="text/javascript">
    $(document).ready(function() {
        var patents = $("#appln_nrs").val();
        //var patents = [{id:"ABC"},{id:"DEF"}];
        $("#patents").tokenInput("", {
            theme:"facebook",
            prePopulate: patents
        });
    });
</script>

Проблема в том, что JSON содержит только 5 записей с идентификатором и его значением, но когда я нахожусь в представлении, в текстовой области отображается что-то вроде этогоИзображение

Но когда я передаю какую-то жестко закодированную переменную JSON в патенты, она отображается правильно.

Любая помощь будет высоко оценена.

Спасибо

Редактировать

Когда я использую в своем javascript, например

 var patents = {{ patents }};

это дает мне следующую синтаксическую ошибку

  SyntaxError: invalid property id
  [Break On This Error]     

  var patents = [{&quot;id&quot;:&quot;AT.02708872.T&quot;},{&quot;id&quot;:&quot;... 

person Wearybands    schedule 20.09.2012    source источник
comment
Почему вы используете скрытое поле? Можете ли вы опубликовать html сгенерированного скрытого поля?   -  person Carlos Granados    schedule 20.09.2012
comment
Сгенерированное скрытое поле ввода имеет вид ‹input id=appln_nrs type=hidden value=[{id:AT02708872},{id:DE60232348},{id:EP02708872},{id:SE0101087},{id:SE0200504}]›   -  person Wearybands    schedule 20.09.2012
comment
я использую скрытое поле ввода для передачи патентов из php в мой Jquery   -  person Wearybands    schedule 20.09.2012
comment
Вы должны попросить twig не экранировать вашу переменную, используя |raw. Отредактировал мой ответ   -  person Carlos Granados    schedule 21.09.2012


Ответы (1)


Не используйте скрытое поле. Просто делать:

<script type="text/javascript">
    $(document).ready(function() {
        var patents = {{patents|raw}};
        //var patents = [{id:"ABC"},{id:"DEF"}];
        $("#patents").tokenInput("", {
            theme:"facebook",
            prePopulate: patents
        });
    });
</script>
person Carlos Granados    schedule 20.09.2012
comment
Теперь он ничего не отображает в текстовой области - person Wearybands; 20.09.2012
comment
Извините, я забыл поставить точку с запятой после "{{patents}}". Исправлено - person Carlos Granados; 20.09.2012
comment
когда я использую var patches = {{patents}}; и предупреждение (патенты) .. это говорит function Array () { [собственный код]} - person Wearybands; 21.09.2012
comment
Можете ли вы опубликовать код сгенерированного html для этого скрипта? Также обратите внимание, что в работающем коде (var patchs = [{id:ABC},{id:DEF}];) id не заключен в кавычки. Возможно, вам нужно изменить это при создании json - person Carlos Granados; 21.09.2012
comment
на самом деле я получаю массив в переменной патентов, на мой взгляд - person Wearybands; 21.09.2012
comment
Извини. Когда я повторяю патенты в добавленном представлении, он показывает правильный JSON, но когда я отображаю его в JS, например, var patches = {{patents}}, он ничего не показывает. я отредактирую свой вопрос - person Wearybands; 21.09.2012