2017-04-04 1 views
0

enter image description here 저는 symfony를 처음 사용했습니다. 보기 페이지가 bootstrap tables입니다. 또한 침전물 컨트롤러가 (컨트롤러 \ SiftscienceTrackerController.php은 SRC \ AppBundle \) 생성 및 삭제 기능은 다음과 같다 :symfony 3에서 아약스가있는 컨트롤러에서 delete delete 함수 호출

public function deleteAction(Request $request, SiftscienceTracker $siftscienceTracker) 
{ 
    $form = $this->createDeleteForm($siftscienceTracker); 
    $form->handleRequest($request); 

    if ($form->isSubmitted() && $form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $em->remove($siftscienceTracker); 
     $em->flush(); 
    } 

    return $this->redirectToRoute('admin_siftsciencetracker_index'); 
} 

내 질문은 내가 삭제에서 아약스 호출 컨트롤러의이 함수를 호출 할 수 있는지 여부입니다 버튼 행에 어떻게 아약스를 써야하나요? 그렇지 않으면 그 컨트롤러 안에 또 다른 함수를 생성 할 수 있고 그 함수는 아약스와 함께 호출 될 수 있습니까?

public function deleteAction(Request $request, SiftscienceTracker $siftscienceTracker) 
{ 
    $form = $this->createDeleteForm($siftscienceTracker); 
    $form->handleRequest($request); 

    if ($form->isSubmitted() && $form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $em->remove($siftscienceTracker); 
     $em->flush(); 
    } 

    $request = $this->getRequest(); 

    if($request->isXmlHttpRequest() || $request->get('_xml_http_request')){ 
     return new JsonResponse("{url: $this->generateUrl('admin_siftsciencetracker_index')}", 200); 
    } 

    return $this->redirectToRoute('admin_siftsciencetracker_index'); 
} 

당신이 요청이 별도의 행동을 피하기 위해 아약스 요청의 경우 내가 확인해 볼 수 있듯이 :

답변

0

여기에 jQuery를 사용하여 예입니다. 나는 논리를 볼 수 있지만 내가 URL을 조금 혼란 해요

$.ajax({ 
    url: $('#my-form').prop('action'); 
    method: 'post', 
    data: $('#myForm').serializeArray() 
    success: function(response){ 
    window.location(response.url); 
    } 
}); 
+0

감사합니다 : 당신의 행동이 리디렉션을 반환하기 때문에

은 그냥 아약스 호출을 만든 스크립트 JSON으로 URL을 반환하고 자바 스크립트 리디렉션을 : $ ('# my-form'). prop ('action') ;. 나는보기에 행이있는 테이블 만 가지고있다. 이미지로 편집 된 질문 –