使用jquery设置树枝路径功能以形成动作

时间:2014-03-01 22:38:33

标签: jquery forms path action twig

我正在使用Symfony 2.3.4,当然还有Twig。

现在,我正在尝试将twig的函数path()设置为一个表单的动作,问题是......好吧我不能。

当我运行时:

$('#prof_create').prop('action',"{{ path('profesor_create') }}");

我的目标是这个结果:

<form id="prof_create" class="form-horizontal sf_admin_form_area" 
action="/SVN/Symfony/web/app_dev.php/admin/profesor/create" method="post" 
{{ form_enctype(form) }}>

是{{path('profesor_create')}} - &gt; /SVN/Symfony/web/app_dev.php/admin/profesor/create

javascript文件显示没有错误或警告,但它确实无法正常工作,因为当我尝试提交表单时: 错误

找不到“POST / admin / profesor /%7B%7B%20path(%27profesor_create%27)%20%7D%7D”的路线

这意味着它没有“转化”

{{ path('profesor_create') }}

进入

/SVN/Symfony/web/app_dev.php/admin/profesor/create

我不想做的是写下js函数中的整个地址,有没有办法完成这个?

先谢谢。

2 个答案:

答案 0 :(得分:0)

在浏览器中显示实际的HTML输出之前,会渲染和处理Twig及其变量。

因此,在这种情况下{{path('profesor_create')}}只是另一个字符串,由于它已经运行并且生成了输出,因此不会被Twig引擎处理。

预先渲染您的路线并将其设置在您需要的地方,或者使用像https://github.com/FriendsOfSymfony/FOSJsRoutingBundle这样的javascript路由捆绑包来渲染您的路线以使用它。

答案 1 :(得分:0)

{# ../some.html.twig #}
<form id="prof_create" class="form-horizontal 
sf_admin_form_area" action="{{ path('profesorext_create') }}" 
      method="post" {{ form_enctype(form) }}>
        {{ form_widget(form) }}

    <div class="form-actions">
        <button onclick="before_submit_action()" id="submit_prof"  class="btn btn-primary">
        <i class="icon-ok"></i> {{'Guardar' | trans}}</button>

        <a class="btn" href="{{ path('profesorext') }}">
            <i class="icon-ban-circle"></i> {{'Cancelar' | trans }}</a>
    </div>
</form>

<script type="text/javascript">
function before_submit_action() {
    if(<condition_met>)
        $('#prof_create').attr('action',{{ path('profesor_create') }});
    else
        $('#prof_create').attr('action',{{ path('profesorext_create') }});
}
</script>