2

私は広告ベースの Web サイトに取り組んでおり、javascript によって入力される広告の種類に合わせてフォームを調整したいと考えています。

たとえば、私には多くのタイプがあります。車&携帯電話

コーヒースクリプトを使用して前の入力に基づいてフィルタリングする 3 つのドロップダウンがあります (コードは以下に含まれます)。

最後のボックスで選択した値に応じて、フォームにパーシャルをロードする必要があります。

以下の例を見てください。

最初のドロップダウンはカテゴリ、サブカテゴリ、サブサブカテゴリです。

最後のボックス「ゲーム」が選択されたときに、部分的な「_games.html.erb」をロードしたい

例

ドロップダウンを非表示にしてフィルタリングするための Coffee Script は次のとおりです。

  jQuery ->
  $('#classified_tag_list').autocomplete
    source: $('#classified_tag_list').data('autocomplete-source')


  $('#classified_sub_category_id').hide()
  $('#classified_sub_sub_category_id').hide()
  sub_category = $('#classified_sub_category_id').html()

  $('#classified_category_id').change ->
    category = $('#classified_category_id :selected').text()
    options = $(sub_category).filter("optgroup[label='#{category}']").html()
    if (options)
      $('#classified_sub_category_id').html(options)
      $('#classified_sub_category_id').show()
      $('#classified_sub_sub_category_id').empty()

    else
      if(not category == 'Please select a category')
        $('#classified_sub_category_id').parent().hide()
        $('#classified_sub_sub_category_id').parent().hide()
      $('#classified_sub_category_id').empty()
      $('#classified_sub_category_id').empty()
      $('#classified_sub_sub_category_id').empty()
      $('#classified_sub_sub_category_id').empty()




  suburbs = $('#classified_sub_sub_category_id').html()
  $('#classified_sub_category_id').change ->
    city = $('#classified_sub_category_id :selected').text()
    options = $(suburbs).filter("optgroup[label='#{city}']").html()
    if (options)
      $('#classified_sub_sub_category_id').html(options)
      $('#classified_sub_sub_category_id').show()
    else
      $('#classified_sub_sub_category_id').empty()
      $('#classified_sub_sub_category_id').hide()

では、最後のドロップダウンの値に応じて、javascript を使用してパーシャルをロードするにはどうすればよいでしょうか。

[編集]

選択ボックスに基づく動的部分 - Rails 2.3.5を見ました

そしてこれが私が持っているものです

_form.html.erb

    <script type="text/javascript">
$(document).ready(function() {
  $('#classified_sub_sub_category_id').change(function() {
    $.ajax({ url: '/classifieds/form_partial/'+ this.value });
  });
});
</script>

routes.rb

  resources :classifieds do
    match "/form_partial/:id" => "classifieds#form_partial" 
  end

classifieds_controller.rb

def form_partial
  @category = Category.find(params[:id])
end

form_partial.js.erb

 <% if @category == 1 %>
   $('#classified_sub_sub_category_id').after('<div id="product_partial"><%= escape_javascript render('/forms/cars') %></div>');
 <% else %>
   $('#classified_sub_sub_category_id').after('<div id="product_partial"><%= escape_javascript render('/forms/cars') %></div>');
<% end %>

しかし、それはエラーを与えます

undefined method `render' for #<#<Class:0xa0805fc>:0xb574788>
  (in /home/james/hustle/app/assets/javascripts/form_partial.js.erb)
4

1 に答える 1