0

私はそのような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"
      });
    });
  });
});

そしてそのようなhamlコード

.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

このdivjquery値を設定する必要がありますが、すべて動的であるため、ページが読み込まれた後、dbに移動し、id(各ボックスに別のもの)を介して値を設定します。

4

1 に答える 1

0

これを試してください、あなたの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

(ajaxリクエストは「script」タイプであるため、インスタンス変数@idを追加し、jsビューをレンダリングします)

あなたの見解(search_trees / price.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 -%>
于 2012-10-14T23:58:36.067 に答える