onchange display/change a partial

jquery, ruby-on-rails, selectionchanged

Solution

why not render the form in the same page and hide and show it on change of select tag

<html> 
  <body>

  <!-- Your Select tag -->
  <select id="select_id"> 
    <option value="one" selected> One </option>
    <option value="two"> Two </option>
  </select>

  <!-- Here your a div inside with your form is placed -->
  <div id="myform" style="display:none">
    <form action="/someurl">
      .. ..
    </form> 

   <!-- JQuery code to  show the form -->
  <script type="text/javascript">
    $(document).ready(function() {
       $("select#select_id").bind("change",function() {
         if ($(this).val() == "one") 
          $("div#myform").show(); 
         else
          $("div#myform").hide(); 
       })
   })

  </script>

</html>

I you still want to make an ajax request I pretty simple too

$(document).ready(function() {
  $("select#select_id").bind("change",function() {
    if ($(this).val() == "one") {
     $.ajax({
        url : "/form_url",
        data : "html", 
        type: "GET",
        success : function(data) {
          $("div#myform").html(data)
        }
     }) 

  })
})

on the server side you need to respond_to the ajax request using `format.js` and render a template directed using render command or just define a `.js.erb` file

Problem

There is a drop down using select ``` <%= select("array", "folder", @rows.keys, {}, :onchange =>"?" )%> ``` There is a partial called "form" ``` <%= render "form"%> ``` I need to render the partial whenever there is a change in the selection. Please, let me know if there is a way to do it. I found that the `remote_function` is deprecated from rails 3.0. I have seen all possible links here with onchange and select tags but could not find a proper answer. I'm new to rails, jQuery and Ajax. Please help Thanks

Original source