jquery - FOSJsRoutingBundle : Cannot Generate routing url inside javascript

标签 jquery symfony

我正在使用 FOSJsRoutingBundle 在 JavaScript 文件中生成 Symfony 2 路由 url。 我已经按照文档安装了该 bundle (https://github.com/FriendsOfSymfony/FOSJsRoutingBundle/tree/master/Resources/doc)

尝试使用ajax脚本实现表单提交,用户可以在其中评分和评论。

这是我的 twig/html 代码:

<form id="feedback" method="post" name="feedback">
    <div class="form">            
        <div class="form_layer">
            <div class="rating">
                <label>Rate Us:</label>
                <input type="radio" name="rating" value="1"><small>One</small>
                <input type="radio" name="rating" value="2"><small>Two</small>
                <input type="radio" name="rating" value="3"><small>Three</small>
                <input type="radio" name="rating" value="4"><small>Four</small>
                <input type="radio" name="rating" value="5"><small>Five</small>
            </div>
        </div>
        <div class="form_layer floated1">
            <div class="comment">
                <label>Please give your feedback</label>
                <textarea rows="5" cols="32" id="comment" name="feedback"></textarea>
            </div>
            <div class="clr"></div>
        </div>
        <span class="comment_btn"><input type="submit" class="comment_submit" name="validate" value="Submit"></span>
    </div>
    </form>

这是我的 JavaScript 代码:

//Ajax Form Submission
$(function() {
    $('.comment_submit').click(function() {
        var rating = $(':radio').val();            
        var comment = $('#comment').val();
        alert("comment: "+comment);
        var route = Routing.generate('user_feedback');

        alert("Route: "+route);

        /* $.ajax({  
          type: "POST",  
          url: Routing.generate('user_feedback', { "rating": rating, "comment": comment}),  
          success: function() {  
            $('div.middle').html("<div class='message'></div>");  
            $('.message').html("<h3>Thank You!</h3>")  
            .append("<p>Your comment has been submitted</p>")  
            .hide()  
            .fadeIn(1500);  
          }  
        });  
        return false; */

        //alert("Rating"+comment);
        //alert("Feedback Submited");
    });
});

我还在我的routing.yml 文件中添加了路由URL

现在的问题是当我提交表单时,我无法获取路线值。我试图提醒您在代码中看到的路线值,但我没有得到值(value)。当我提交时,表单就会刷新。

代码有问题吗? 我是 Symfony 2 的新手,所以请帮助我。

谢谢

最佳答案

检查您的配置路由:

my_route_to_user_feedback:
    pattern:  /user/feedback
    defaults:  { _controller: HelloBundle:User:feedback }
    options:
        expose: true

选项暴露必须为真。这对于 FOSJsRoutingBundle 很重要!

关于jquery - FOSJsRoutingBundle : Cannot Generate routing url inside javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8922803/

相关文章:

symfony - Twig 中的条件继承

php - Symfony FOSUserBundle 翻译不显示

caching - 使用 Symfony2 更改 cache_dir 和 log_dir

jquery - 处理我希望用户不可见的 DOM 元素

javascript - 如何将结果列表中的项目应用到当前对象的父 Div 标签?

javascript - 使用jQuery从字符串中获取倒数第二个字符位置

javascript - 选择属性的一部分 - JQuery

php - 如何与多个项目共享 Symfony2 模型

Symfony Profiler 查询堆栈跟踪

javascript - jQuery ajax 调用是否支持 PATCH?