Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击时包含具有不同变量值的模板文件-Symfony2/Twig_Javascript_Jquery_Symfony_Twig - Fatal编程技术网

Javascript 单击时包含具有不同变量值的模板文件-Symfony2/Twig

Javascript 单击时包含具有不同变量值的模板文件-Symfony2/Twig,javascript,jquery,symfony,twig,Javascript,Jquery,Symfony,Twig,当涉及到js文件、控制器、模板之间的通信时,以及在涉及到js和ajax时,我完全不懂 我有如下不同的链接: <a class="details" data-index ={{i}}> Link 1 </a> $('.details').on('click', function(){ var index = $(this).data('index'); {% include 'MyBundle::information.html.twig'

当涉及到js文件、控制器、模板之间的通信时,以及在涉及到js和ajax时,我完全不懂

我有如下不同的链接:

<a class="details" data-index ={{i}}> Link 1 </a>
$('.details').on('click', function(){
        var index = $(this).data('index');
        {% include 'MyBundle::information.html.twig' with {'var':index} %}
});
$('#details').on('click', function(){
    var index = $(this).data('index');

    var $whereToLoadContent = $("#divid") ; //where you want to load data
    //__index__ is just a placeholder
    var routeWithPlaceHolder= "{{ path('route_name',{'var':'_index_'}) }}" ; 
    var routeToLoad = routeWithPlaceHolder.replace("_index_",index) ;


    $whereToLoadContent.load(routeToLoad) ;


});
但是通过这种方式.js不会将索引变量赋给twig,我得到一个错误,即未定义索引:(


如何解决此问题?这不需要通过控制器。更改“var”值即可完成此任务。

最好的方法是使用,如果出于某种原因您不想使用该捆绑包,您可以执行以下操作:

<a class="details" data-index ={{i}}> Link 1 </a>
$('.details').on('click', function(){
        var index = $(this).data('index');
        {% include 'MyBundle::information.html.twig' with {'var':index} %}
});
$('#details').on('click', function(){
    var index = $(this).data('index');

    var $whereToLoadContent = $("#divid") ; //where you want to load data
    //__index__ is just a placeholder
    var routeWithPlaceHolder= "{{ path('route_name',{'var':'_index_'}) }}" ; 
    var routeToLoad = routeWithPlaceHolder.replace("_index_",index) ;


    $whereToLoadContent.load(routeToLoad) ;


});

不确定语法是否正确,但希望您能理解。如果您经常这样做,我再次建议您使用FOSJsRoutingBundle。

谢谢,但有一个问题:当我将其放在单独的.js文件中时,我得到错误,即/get/{{没有路由,当我将其放在模板文件中时,我再次得到该索引未定义:(请记住,您需要创建名为route_name的路由。'route_name'只是一个示例,它可以是任何东西。至于为什么没有定义索引,是因为我犯了一个错误。index是一个js变量。我认为最好的方法是使用FOSJsRoutingBundle。该捆绑包有一个函数。我将使用一个不推荐的w进行编辑。)做这件事的方法。