我想从控制器返回数据并将其附加到一个div。下面是我的代码有:如何获取从Ajax返回的数据附加到div? - JQuery + Rails的3.1
$(this).parent().find('list').append(__WHAT_GOES_HERE?__);
我应该如何获得数据在JQuery中使用AJAX追加?我知道这是一个非常基本的问题 - 我是新来的JS :(
PS让我们假设该控制器的路径为/ajax_get_items
我想从控制器返回数据并将其附加到一个div。下面是我的代码有:如何获取从Ajax返回的数据附加到div? - JQuery + Rails的3.1
$(this).parent().find('list').append(__WHAT_GOES_HERE?__);
我应该如何获得数据在JQuery中使用AJAX追加?我知道这是一个非常基本的问题 - 我是新来的JS :(
PS让我们假设该控制器的路径为/ajax_get_items
我想,你希望将其加载到一个类,所以list
会是.list
喜欢的东西:
$.ajax({
url: "/ajax_get_items",
type : "POST",
data : { // If you need data to be posted
id : 12,
num : "test"
},
success : function(result){
$(this).parent().find('.list').append(result);
// If a JSON object is returned, use the following line:
// $(this).parent().find('.list').append(result.html);
}
})
或者,如果你想只加载数据,而无需PARAMS(GET方法):
$(this).parent().find('.list').load("/ajax_get_items");
如果您想了解红宝石轨和jQuery的更多信息:http://brandonaaron.net/blog/2009/02/24/jquery-rails-and-ajax
这是你所需要的:不同的地方,你不能“这”在这种情况下使用
$.ajax({
url: '/ajax_get_items',
success: function(data) {
$('#selector').parent().find('list').append(data)
}
});
注此调用时,或者你可能最终得到意想不到的效果
$('somelink').click(function(e) {
e.preventDefault();
$.ajax(url, data, success:function(resData) {
resultSet = resData.extract(resData);
}
}
基本上这部分处理来自Ajax调用和响应10应该从返回的数据中构建您所需的html。
在此之后,你可以简单地说
$(this).parent().find('list').append(resultSet);
但这是假设的主要工作是在功能extract
与返回的数据来完成。 在那里你建立你的列表(或其他)html是需要的。
您的解决方案预计数据将处于正确的HTML标记中,这很难从后端系统获得。这必须在JS的前端完成。 – Arindam
这就是OP询问的内容,并且在rails中这些并不是你很难得到的,它很容易获得有效的html。如果需要进行任何操作,或假定使用JSON对象,则仍然可以在函数 –
True中操作数据。你可以得到JSON返回,但仍然不是HTML。从控制器返回html是没有意义的。它只应该以某种标准符号返回数据,即JSON。但根据需要将数据格式化是数据消费者的责任。这就是真正实现术语分离的方式,这样你就可以在其他地方使用相同的功能,只返回数据而不是格式化的HTML,新的调用者可能没有要求 – Arindam