5

私は JavaScript に本当に慣れていないので、これに関するいくつかのチュートリアルをうまく行うことができませんでした。ある場合は、それらを読むように言ってください。

私がやりたいことは、PHP コントローラーから .js ファイルに変数を渡すことです。Highcharts 変数にデータを入力したいと考えています。

応答を送信できることはわかっていますが、テンプレートもロードする必要があります。

これはテンプレートです:

...

{% block body %}

 <h1>Months</h1>

 // This is the Chart:    
 <div id="container" style="width:100%; height:400px;"></div>

    {%block javascript%}
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script src="http://code.highcharts.com/highcharts.js"></script>

        <script src="{{ asset('bundles/acmebudgettracker/js/month.js') }}"></script>
    {%endblock%}

{% endblock %}

と呼ばれる.jsファイルmonth.js

      $(function () { 
$('#container').highcharts({
    chart: {
        type: 'bar'
    },
    title: {
        text: 'Budget for months'
    },
    xAxis: {
        categories: ['Spent', 'Saved']
    },
    yAxis: {
        title: {
            text: 'Fruit eaten'
        }
    },
    series: [{
        name: 'Jane',
        data: [1, 0, 4]
    }, {
        name: 'John',
        data: [5, 7, 3]
    }]
});

});

そしてコントローラー:

public function monthsAction()
{
    $this->setUser();
    $month_repository = $this->setRepository('Month');
    $month = new Month();
    $form = $this->createForm(new MonthType(), $month);

    $all_months = $month_repository->findByUser($this->user); 

    return $this->render('AcmeBudgetTrackerBundle:Months:months.html.twig', array(
        'all_months' => $all_months,
        'form' => $form->createView()
    ));
}

私がやりたいことは、コントローラーから month.js に変数を与えても、テンプレートを表示できるようにすることです。これを達成するためのアイデアやチュートリアルはありますか? 前もって感謝します!

4

2 に答える 2

8

クイック&「汚い」答え:balisesを使用してTWIGファイルに変数を設定し、JSファイルでそれらの変数を使用します。

<script>
    var foo = {{ bar }};
</script>
于 2013-06-14T08:14:24.067 に答える