0

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
}
4

1 に答える 1

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();
});
于 2012-07-03T07:05:34.837 に答える