如何使用play框架将选定选项的值传递给控制器

时间:2013-02-20 05:47:31

标签: javascript jquery ajax playframework

我正在尝试根据所选的下拉列表值使用网址进行ajax调用。

到目前为止,我有类似的内容:

$('#select').change(function() {
    $.ajax({
        url:'@{action($(this).val())}',
        success:function(report){
           alert('success');
        },
        fail:function(error){
            alert('error:'+error);         
        }
    }
    });  

模板不会编译并抱怨网址行。

我的问题是我不知道如何将从jquery返回的值转换为要路由的参数。

2 个答案:

答案 0 :(得分:1)

我对playframework不太了解,但我知道jQuery ajax。所以这是一个解决方案,可能会帮助您解决问题。在jQuery Ajax方法中,我们可以通过POST或GET方法发送数据。为此,我们必须在ajax选项中设置type选项。要发送数据,我们必须在ajax选项中设置数据参数,其中包含我们要发布到网址的所有数据。

$('#select').change(function() {

 var params = {myvar:$("#select :selected").val()};

 $.ajax({
    type: "POST",       
    url:'path to controller',
    data: params,
    success:function(report){
       alert('success');
    },
    fail:function(error){
        alert('error:'+error);         
    }
  });
});  

答案 1 :(得分:0)

知道了。使用jsRoute解决

$('#select').change(function() {
    var route = #{jsRoute @action(':field') /}
    $.ajax({
        url: route.url({field: $('#select').val()}),
        type: route.method,
        success:function(report){
           alert('success');
        },
        fail:function(error){
            alert('error:'+error);         
        }
    }