0

メニューにページネーションgemを使用せずにajaxページネーションを実行しようとしています(これはテンプレートのようなものです)。たとえば、ブランド メニュー名のマウス ホバーでブランド メニューを表示するには、「menu_brand」レンダリングを使用しています。このレンダリングされたビューでは、ページネーション機能を実行する必要があります。コンソール ログで現在のページ コンテンツを正常に取得しています。

コントローラーでこのようにやっています

def menu_brand
    $cnt=Brand.count
end

def menu_brand_page
    $st=0
    if !(params[:startingRow].nil?)
        $st = params[:startingRow].to_i
    end
    $brands=Brand.limit(24).offset($st)
end

_menu_brand.html.erb で

<% if !($cnt.nil?) %>
<% @pg = ($cnt / 24).ceil %>

<div class="paginator">
    <%
    for j in 0..@pg %>
    <%= link_to "#{j+1}", "javascript:GotoPage('#{j*24}')",  %>
    <% end
    %>
</div>
<table width="700px"; align="center" id="menupage">
    <%= render "menu_brand_page"%>
</table>
<% end %>
<script type="text/javascript">
    function GotoPage(startrow) {
var theURL = '/menu_brand_page/'+<%= params[:deptid] %>
    +'/' + startrow;
    $.ajax({
        url : theURL
    });
    }
</script>

menu_brand.js.erb 内

$('#bval').html('<%= escape_javascript render ('menu_brand') %>');

_menu_brand_page.html.erb 内

<% $brands.each do |brand| %>
    <%= brand.name %>
<% end %>

menu_brand_page.js.erb 内

$('#menupage').html('<%= escape_javascript render ('menu_brand_page') %>');

レイアウト中

<div id="bval">
<%= render "menu_brand" %>
</div>
<script type="text/javascript">
$(document).ready(function() {
var theBrand = '/menu_brand/' + <%= params[:deptid] %>;
$.ajax({
url : theBrand
});
});
</script>

私のルーター.rb

match "menu_brand_page/:deptid/:startingRow" => "product_details#menu_brand_page"
match "menu_brand/:deptid" => 'product_details#menu_brand'

コンソールログ出力

$('#menupage').html('\n\n \nBC\n</td>\n\n \nBCフットウェア\n</td>\n\n \nBCBG\n</td>\n </tr>\n\n\n \nBCBGeneration\n</td>\n\n \nBCBGMAXAZRIA\n</td>\n\n \nBCX\n</td>\n</tr>\n \n\n \nクリエイティブに\n</td>\n\n \nBeach Bunny\n</td>\n\n \nBeach House\n</td>\n</tr>\n\n\ n \n海の家の女\n</td>\n\n \nbebe\n</td>\n\n \nベッカ\n</td>\n</tr>\n\n\n \nベッド ステュー\n</td>\n\n \nBellatrix\n</td>\n\n \nBELLE BY SIGERSON MORRISON\n</td>\n</tr>\n\n\n \nBelle Du Jour\ n</td>\n\n \nベル ノエル\n</td>\n\n \nベン アマン\n</td>\n</tr>\n\n\n \nベンチ\n</td >\n\n \nベレク\n</td>\n\n \nベルナルド\n</td>\n</tr>\n\n\n \nニューヨークのバーニー\n</td>\n \n \nベットマー\n</td>\n\n \nベッツィー・ジョンソン\n</td>\n</tr>\n\n');

menu_brand ビューでコンテンツが変更されない理由がわからないのを助けてください。

4

1 に答える 1

0

@agncleod ありがとうございます。@agmcleodは正しいです。ドキュメント準備完了関数で render を呼び出していましたが、グローバル変数を多用しました。現在、マウス ホバー イベントでレンダリングしており、インスタンス変数を使用しています。この間違いを修正しました。すべてのグローバル ($) 変数をインスタンス (@) 変数に変更しました。以下で述べたように、レイアウトではrender関数を呼び出しています。

レイアウト内

<a href="#" id="menubrand">brands</a>
<div id="bval">
<%= render "menu_brand" %>
</div>
<script type="text/javascript">
$("a#menubrand").hover(function () {
var theBrand = '/menu_brand/' + <%= params[:deptid] %>;
$.ajax({
url : theBrand
});
},
function () {
});
</script>
于 2012-09-20T05:59:43.567 に答える