在编辑表单中覆盖保存按钮的默认操作

时间:2013-09-08 16:42:12

标签: symfony-1.4

如果单击“保存”按钮,则在编辑表单中将执行action.class.php文件的executeUpdate操作。但是当用户按下编辑表单的保存按钮时,我想调用自定义的executeUpdateSometing动作函数而不是executeUpdate动作。怎么可以实现呢?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,但两者都依赖于路由的一些变化。

  1. 更改表单操作
  2. 在代码<form>中,您可以更改操作属性<form action="">,以输入指向自定义操作的其他路线,例如:

     <form id="my_form" method="POST" action="<?php echo url_for('@route_to_custom_update')?>">
       //form fields go here
     </form> 
    

    当用户点击提交按钮时,这将通过指向客户更新操作的自定义路线提交表单。

    1. 使用jQuery
    2. 创建一个jQuery(或JS)函数,用于侦听表单提交操作,然后通过自定义路由提交表单。

      您可以通过更新现有路径来更改routing.yml文件中的路由

      update_form:
        url: /update/url
        param: { module: your_module, action: updatesomething}
      

      或添加新路线&amp;在表单action或jQuery Ajax调用中使用它

      something_update_form:
        url: /something/update/url
        param: { module: your_module, action: updatesomething}
      

      注意:如果您添加其他路线,则该网址需要与现有更新网址不同。

      Symfony 1.4 documentation有关于表单提交的更多详细信息&amp;路由