0

ajax呼び出しの実行後にページを更新するにはどうすればよいですか?私のAjaxコールは

 $.ajax({
         type: "POST",
         data: data,
         url:"{{ path('v2_pm_patents_trashpatents') }}",
         cache: false
});

このajaxによって実行されるメソッドは

 public function trashpatentAction(Request $request){
    if ($request->isXmlHttpRequest()) {
        $patent_id = $request->get("pid");
        $em = $this->getDoctrine()->getEntityManager();
        $patent = $em->getRepository('MunichInnovationGroupPatentBundle:SvPatents')->find($patent_id);
        if (!$patent) {
            throw $this->createNotFoundException('No patent found for id '.$patent_id);
        }
        $patent->setIs_deleted(1);
        $em->flush();
    }
}

編集

ポートフォリオコントローラーインデックスアクション

public function indexAction(Request $request) {
     $switch_form = $this->createForm(new SwitchPortfolioType($portfolios));
     ////rest of action code
     return $this->render('MunichInnovationGroupPatentBundle:Portfolio:index.html.twig', array('new_patentgroup_form' => $new_patentgroup_form->createView(),'switch_form' => $switch_form->createView(), 'new_form' => $new_form->createView(), "portfolios" => $portfolios ,"selected_portfolio" => $selected_portfolio,"portfolio_groups" => $portfolio_groups,"patents" => $patents));

}

Index.html.twig

 <form name="portfolios" action="{{ path('v2_pm_portfolio') }}" method="post" >
            {{ form_widget(switch_form) }}
            <input type="submit"class="portfolio_input button2 tooltip" value="Switch">
 </form> 

SwitchPortfolioType

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class SwitchPortfolioType extends AbstractType
{
public function __construct($portfolios)
{
    $this->portfolios = $portfolios;
}


public function buildForm(FormBuilder $builder, array $options)
{
    $builder
    ->add('', 'choice', array(
        'choices'   => array(
                'test' => 'Test'
        ),
            'empty_value' => 'Switch your Portfolio',
    ));
}

public function getName()
{
    return 'switch_portfolio';
}

}

このアクションの最後に、ページを更新したいと思います

これどうやってするの?

4

2 に答える 2

2

更新はjavascriptで行う必要があります。とにかくページをリロードするためだけにajax経由でPOSTする理由がわかりませんが、通常どおりPOSTしないのはなぜですか?

とにかく、あなたが求めることをするために、私は成功を示すためにコントローラーでいくつかの単純なJSON応答を返し、次にajaxコールバックでこれを行います:

$.ajax({
     type: "POST",
     data: data,
     url:"{{ path('v2_pm_patents_trashpatents') }}",
     cache: false,
     success: function(data) {
         // optionally check if the response is what you wanted
         //if (data.response == 'deleted') {
             document.location.reload(true);
         //}
     }
});
于 2012-06-24T19:52:29.273 に答える
0

jQuery の使用:

$('your_form').disable=true;

純粋な JS:

your_form.disabled = true;
于 2012-10-22T18:04:51.800 に答える