2012-11-29 140 views
0

我在我的视图中有一个DropDown菜单,它有一个回调,只要它检测到更改事件就会被触发。我想通过ajax将DropDown中选择的值传递给我的Line_items控制器并更新特定的记录。
不幸的是,$ .ajax对我来说仍然是一个陌生人。Ajax Put请求Select_tag

到目前为止,我有:

$.ajax(
     type: 'POST', 
     dataType: 'text' 
     url: 'orders/:order_id/line_items/:id', 
     data: 
     "variant_id": selectedData.selectedData.value 

     success: -> 
     alert ('test') 
    ) 

什么是这样做的正确方法?

+0

'$ .ajax'相当于'jQuery.ajax'('$'是'jQuery'的别名)。所以你需要做的是阅读jQuery doc中的这个方法,在这里:http://api.jquery.com/jQuery.ajax/ –

回答

0

基本上你可以传递数据中的那个值作为json对象;您的功能可能如下所示:

$('#my_dropdown_id').change(function() { 
    var sel_value = $(this).val(); 
    // here you can do some validation, etc; before fire the ajax call if is necessary 
    $.ajax({ 
    url: 'orders/:order_id/line_items/:id', 
    type: 'POST', 
    data: {variant_id: sel_value}, 
    success: function(data) { 
     alert('OK!') 
    } 
    }) 
}); 

然后在您的后端,您可以从post params中获取该值。即params ['variant_id']

我假设你将使用适当的ID值建立URL;即

url: 'orders/'+ your_order_id +'/line_items/'+ line_item_id,