我有这样的jquery代码:
jQuery(function($) {
$(document).ready(function () {
$('.lol').each(function(index) {
console.log("#"+$(this).attr("id"));
$.ajax({
url: "/articles/get_prices/nr="+$(this).attr("nr")+"&br="+$(this).attr("br")+"&type="+$(this).attr("type"),
type: "GET",
data: {},
success: function(text)
{
$("#"+$(this).attr("id")).html(text);
},
error: function(){
alert('Ошибка javascript');
},
dataType : "html"
});
});
});
});
和这样的哈姆尔代码
.box{:id => art.ART_ARTICLE_NR.gsub(/[^0-9A-Za-z]/, '')}
方法
def get_prices()
nr = params[:nr]
br = params[:br]
type = params[:type]
@pr = find_price(nr, br, type)
respond_to do |format|
format.html { render :partial=>"search_trees/price" }
end
end
我需要设置这个div jquery 值,但它都是动态的,所以在页面加载后,它会转到 DB,并通过 ID(每个框是另一个)设置一个值。
试试这个,你的js文件:
$(document).ready(function(){
$('.lol').each(function() {
url = "/articles/get_prices/nr="+$(this).attr("nr")+"&br="+$(this).attr("br")+"&type="+$(this).attr("type")+'&id='+$(this).attr('id');
$.get(url,function(){},'script');
})
})
(你用脚本数据类型做一个 ajax 请求,所以响应被执行,你不需要自己处理)
您的控制器:
def get_prices()
nr = params[:nr]
br = params[:br]
type = params[:type]
@pr = find_price(nr, br, type)
@id = params[:id]
respond_to do |format|
format.js { render :partial=>"search_trees/price" }
end
end
(添加实例变量@id并呈现 js 视图,因为 ajax 请求是"脚本"类型)
您的视图(search_trees/价格.js.erb,提交JS文件很重要)
$("#<%= @id -%>").html(<%= javascript_escape(render(:partial => "search_trees/price.html")) -%>);
(呈现 HTML 视图并设置div 的 html)
您可能希望添加一些检查以在出现问题时发出警报(例如...您无法对@pr对象进行罚款),因此您可以涵盖这两种情况:
在您看来:
<%- if @pr.nil? -%>
alert('Ошибка javascript');
<%- else -%>
$("#<%= @id -%>").html(<%= escape_javascript(render(:partial => "search_trees/price.html")) -%>);
<%- end -%>