Symfony在链接提交中将表单数据放入sfRequest

时间:2012-07-02 19:05:42

标签: symfony1 symfony-1.4 symfony-forms

使用Symfony我在后端创建了一个表单。我有一个提交按钮,用于保存表单。我需要添加另一个链接(除了提交按钮)到应该发送表单数据的表单,如提交按钮。通过此链接,我将通过控制器中的另一种方法处理提交的数据。

我已尝试link_to('Link', '/backend_dev.php/question/edit?id='.$question->getId(), array('post' => true))link_to('Link', '/backend_dev.php/question/edit?id='.$question->getId(), array('method' => 'post')),但这些功能不会发送表单数据。

控制器

public function executeSave(sfWebRequest $request)
{
    $this->form = new SomeForm(SomePeer::retrieveByPk($request->getParameter('id')));
    if($request->isMethod('post'))
    {
        $this->form->bind($request->getParameter('some'), $request->getFiles('some'));
        if ($this->form->isValid())
        {
            $some = $this->form->save();
            $this->redirect('some/edit?id='.$some->getId());
        }
    }
}

public function executeLink(sfWebRequest $request)
{
    // Like executeSave I need form data here
}

1 个答案:

答案 0 :(得分:3)

在链接上使用带有onClick事件的jQuery,它将更改表单的action属性并提交它。假设该链接的ID为myLink,且该格式为ID myForm

$('#myLink').click(function(e){
    $('#myForm').attr('action','<?php echo '/backend_dev.php/question/edit?id='.$question->getId()?>';
    $('#myForm').submit();
    e.preventDefault();
});