最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to pass variable from twig to js? - Stack Overflow

programmeradmin2浏览0评论

Code prints out tasks information. I want to pass tasks array to JS. How could I do that? Some of my twig code:

    <div>
        {% for task in tasks %}
            <tr>
                <td id>{{ task.Id }}</td>
                <td>{{ task.Status }}</td>
                <td>{{ task.Name }}</td>
                <td>{{ task.Description }}</td>
                <td>{{ task.Category }}</td>
                <td>{{ task.Author }}</td>
                <td>{{ task.CreationDate|date("m/d/Y") }}</td>
                <td><a id="myLink" href="/edit/{{ task.ID }}" > Edit </a></td>
                <td><a id="myLink" href="/delete/{{ task.ID }}" >Delete</a></td>
                <?php echo 2+2; ?>            </tr>
        {% endfor %}

    </table>
</div>

I want to pass array to this js class:

$(function(){
    $('#calendar').fullCalendar({

    });
});

Code prints out tasks information. I want to pass tasks array to JS. How could I do that? Some of my twig code:

    <div>
        {% for task in tasks %}
            <tr>
                <td id>{{ task.Id }}</td>
                <td>{{ task.Status }}</td>
                <td>{{ task.Name }}</td>
                <td>{{ task.Description }}</td>
                <td>{{ task.Category }}</td>
                <td>{{ task.Author }}</td>
                <td>{{ task.CreationDate|date("m/d/Y") }}</td>
                <td><a id="myLink" href="/edit/{{ task.ID }}" > Edit </a></td>
                <td><a id="myLink" href="/delete/{{ task.ID }}" >Delete</a></td>
                <?php echo 2+2; ?>            </tr>
        {% endfor %}

    </table>
</div>

I want to pass array to this js class:

$(function(){
    $('#calendar').fullCalendar({

    });
});
Share Improve this question edited May 14, 2017 at 21:19 hassan 8,3082 gold badges27 silver badges38 bronze badges asked May 14, 2017 at 21:06 DavidDavid 3211 gold badge4 silver badges12 bronze badges 2
  • Did you solved the issue? – Ilario Pierbattista Commented Jun 2, 2017 at 13:40
  • @IlarioPierbattista Yes, I did :) – David Commented Jun 4, 2017 at 10:40
Add a ment  | 

2 Answers 2

Reset to default 3

You can serialize the array in json format: {{ tasks | json_encode() }}.

If your javascript is inside a <script> element of the twig template, you can just do: var data = {{ tasks | json_encode() }}.

Otherwise, you can put the serialized array somewhere in the twig template as an element's attribute: <div id="data-element" data-tasks="{{ tasks | json_encode() }}">. Then just get the data with

var jsonString = $('#data-element').data('tasks');
var data = JSON.parse(jsonString);

First of all , you need to know that there are a big deference between PHP arrays and Javascript arrays.

you need to convert your array to a mon understood format that both PHP and Javascript can understand , which is JSON .

so I will assume that you are sending your tasks from your controller to twig as a json format, then you can set your javascript variable as follows :

<script>
var tasks = '{{ tasks }}';
var tasksObj = JSON.parse(tasks); // to convert json into a javascript object
</script>
发布评论

评论列表(0)

  1. 暂无评论