2014-02-17 2 views
2

Ajax을 사용하여 페이지의 데이터를 변경하고 있습니다. 그래서 다른 기능을 호출하기 위해 현재 경로가 무엇인지 알고 싶습니다. 현재의 URL을 검색하고 현재 경로를 ControllerTwig으로 가져 오는 데 사용되는 많은 솔루션을 읽었습니다. 그러나 javascript 또는 jQuery에서이를 수행 할 수있는 방법이 있습니까?Symfony2 : 자바 스크립트에서 현재 경로를 얻는 방법?

$(document).ready(function(){ 
    $('#form_patient').change(function(){ 
     var id = $(this).val(); 
     // Get the current route 
     var route = ??; // <----------------Want to get the current route 
     if(route === 'route1'){ 
      functionForRoute2(id,route) 
     } 
     else{ 
      functionForRoute2(id,route); 
     } 
    }); 
}); 

** Route1 **

function functionForRoute1(id,route){ 
    $.ajax({ 
     type: "POST", 
     url: Routing.generate(route), 
     data: JSON.stringify({id:id}), 
     dataType: "json", 
     success: function(data){ 
      // Execute some specific data for route1 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) 
     { 
      alert('Error : ' + errorThrown); 
     } 
    }); 
} 

에 대한 기능 ** 당신은 그냥 자바 스크립트 또는 jQuery를 사용하여 현재 경로를 얻을하지 않습니다 Route2 **

function functionForRoute2(id,route){ 
    $.ajax({ 
     type: "POST", 
     url: Routing.generate(route), 
     data: JSON.stringify({id:id}), 
     dataType: "json", 
     success: function(data){ 
      // Execute some specific data for route2 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) 
     { 
      alert('Error : ' + errorThrown); 
     } 
    }); 
} 

답변

5

내가 뭘 할 것은 예를 들어, HTML 태그의 출력 경로 (원하는 경로) (나뭇 가지 버전)이다 같은 :

$(document).ready(function(){ 
    $('#form_patient').change(function(){ 
     var id = $(this).val(); 

     var route = $('my-route').data('route');  
    }); 
}); 

또한 경로의 이름을 문자열로 경로 ("my_route")를 변경할 수 있습니다 그리고 당신은 당신의 경우/else 문을 다하고 있습니다. 그러나 나는 당신의 경로 이름이 바뀌면 코드가 영향을받는 것처럼 좋은 생각을하지 않는다.

1

을위한 기능. 그러나 Javascript로 현재 URL을 얻거나 Twig를 사용하여 현재 경로를 가져올 수 있습니다.

또 다른 가능한 해결책은 현재 URL을 전달하는 서버에 대한 AJAX 호출을 한 번 더 발행 한 다음 올바른 경로와 일치시킨 후 다시 전송하는 것입니다. 그러나, 내가 너라면, 난 그냥 나뭇 가지에서 현재 경로를 얻을 것이다.

<div id="my-route" data-route"{{ path("my_route") }}"></div> 

그런 다음 코드에서 내가 jQuery를 통해 그 경로를 가져 오지 것이다 :

+0

답장을 보내 주셔서 감사합니다. 그것은 복잡해 보입니다 ... – lvarayut

-1
var route = "{{ app.request.attributes.get('_route') }}"; 
+0

'{{}}'이 자바 스크립트에서 사용될 수 있다고 생각하지 않습니다. – lvarayut

+0

나뭇 가지 태그입니다. – Nighon

+0

정확히, 그러나, 내 질문에 JavaScript에서 경로를 얻는 방법입니다. – lvarayut

관련 문제