php - 如何获取js文件中的路由路径

标签 php jquery mongodb symfony

我有一个 new.html.twig,我在此页面上使用了一些 ajax 调用来处理下拉列表的更改事件。

因此,我创建了一个名为 new.js 的独立 js 文件,并将所有 JavaScript 代码保存在该文件中,而不是将其写入同一 View 文件中。

但是在这个js文件中我无法访问称为ajax请求的路由路径。关于更改事件。

===========New.twig.html=====================
    include(new.js);
    <select><name='a' onchange="setLabel('123')"></select>
    ============new.js.=============        
    function setLabel(voucherTypeID) {           
    queryString = "voucherTypeID=" + voucherTypeID;
    $('#loading-image').show();
    $.ajax({
    type: "POST",
    url: "{{path('vouchergeneration_getLedgers')}}", //THIS PATH How TO GET
    data: queryString,
    cache: "false",
    dataType: "html",
    success: function (data){
    });

所以在这里我无法访问 URL 路径,而之前可以在 twig 文件中访问它。请指导我如何解决这个问题。我不想使用任何类型的 bundle 来完成这项简单的工作..提前致谢..

最佳答案

有一个非常简单的 bundle 可以完成这项简单的工作 FOSJsRoutingBundle

启用此 bundle 后,您只需执行以下操作

Routing.generate('my_route_to_expose', { id: 10 }); // will result in
/foo/10/bar

Routing.generate('my_route_to_expose', { id: 10, foo: "bar" }); //
will result in /foo/10/bar?foo=bar

$.get(Routing.generate('my_route_to_expose', { id: 10, foo: "bar" }));
// will call /foo/10/bar?foo=bar

Routing.generate('my_route_to_expose_with_defaults'); // will result
in /blog/1

Routing.generate('my_route_to_expose_with_defaults', { id: 2 }); //
will result in /blog/2

Routing.generate('my_route_to_expose_with_defaults', { foo: "bar" });
// will result in /blog/1?foo=bar

Routing.generate('my_route_to_expose_with_defaults', { id: 2, foo:
"bar" }); // will result in /blog/2?foo=bar

编辑: 当然,你可以不使用 bundle (我认为这不是一个好主意)。在这种情况下,我建议在 Controller 的操作中设置路由,并在 Twig 模板中使用它来设置 js 变量。像这样的东西:

Controller :

public function indexAction()
{
    return array('yourRoute' => $router->generate('yourRoutName'));
}

您的模板:

<script type="text/javascript">
    var yourRoute = '{{yourRoute}}';
</script>

你的js:

(...)
url: yourRoute,
(...)

关于php - 如何获取js文件中的路由路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896533/

相关文章:

php - 如何显示数据库中的数据?

php - root@localhost 无法通过 PHP (PDO) 连接到数据库

javascript - 如何查找所有实例并在警报中显示

node.js - 如果键不存在,则将值推送到数组 Mongoose

c# - Mongo C# 驱动程序 - 长度支持?

node.js - 使用嵌套对象填充嵌套 Mongoose 对象

php - 如何在 XAMPP Windows 上安装 Redis?

php - 使用 MeekroDB 查询带限制的 MySQL 字母数字

javascript - 下载 URL 只能将 1 个 php 变量传递给 google map 标记的属性?

jQuery .html 和 .append 变量