2017-02-13 1 views
0

선택적 문자열을 사용하는 Ajax 경로가 있습니다. HTML 선택 태그에서이 문자열을 가져 오지만 URL 경로에 매개 변수를 전달하면 변수로 등록되지 않습니다.스칼라에서 Ajax URL로 매개 변수 전달하기 재생

$("#submit-button").on('click', function() { 

var getOption = $("#option").find(":selected").text(); 
var idToGet = $("#hi").val(); 
    $.ajax({ 
     url: '@routes.ApplicationController.getStuff(Some(getOption))', //requires an option[string] 
     type: 'GET', 
     data: {get_param: idToGet}, 
     dataType: 'json', 
     success: function (data) { 
     $.each(data, function (index, element) { 
     alert("hi") 
     }); 
    } 
    }); 
}); 

getOption은 URL 경로로 전달 될 수 없습니다. 나는 그것을 함수로 구현하려고 시도했지만 그것을 호출했지만 작동하지 않는다. 어떤 아이디어?

답변

1

GET의 경우 유일한 방법은 absoluteURL 및 queryparam을 사용하는 것입니다. 당신의 매개 변수 이름을 가정

option입니다 :

$("#submit-button").on('click', function() { 

var getOption = $("#option").find(":selected").text(); 
var idToGet = $("#hi").val(); 
    $.ajax({ 
     url: '@{routes.ApplicationController.getStuff(None).absoluteURL()}?option='+getOption, //requires an option[string] 
     type: 'GET', 
     data: {get_param: idToGet}, 
     dataType: 'json', 
     success: function (data) { 
     $.each(data, function (index, element) { 
     alert("hi") 
     }); 
    } 
    }); 
}); 

단점은 스칼라 컨트롤러에 매개 변수의 이름을 변경하는 경우, 당신이보기에서 변경해야한다.

+0

감사합니다. 여러 옵션이있는 경우 URL의 구문은 무엇입니까? – DarthBinks911

+0

'? option = opt1 & option = opt2' –

+0

자바 스크립트로 처리해야합니다. 당신은 다음과 같은 것을 만들 수 있습니다 : var selectedOptions = $ ('# option') var queryparam = ""; selectedOptions.forEach (function (entry) { queryparam + = "option ="+ entry + "& "; }); ' –