Hello all, I''m just a newbie with Ruby on Rails but I''ve worked a little more with jQuery. I have a RoR application that has a very long "New" form. One of the fields in the form is "Project Notes". I have created a hyperlink to a jQuery UI Dialog box that can stay open so the user can type notes while filling in the form (for example during an interview). I have used... <%= link_to_function(''Comments Window'', ''viewDialog("Notes/Comments")'') %> to open the dialog box. The function ''viewDialog() is in the application.js file in ''public'' folder. What I wish would happen is when submitted, the notes typed in the dialog would be updated to the "projects" model. What''s happening is an error message is displaying and the firebug error I get is "No route matches "/project/edit" with {:method=>:post}" Below is the script I''m running. - application.js - function viewDialog(x){ jQuery.ui.dialog.defaults.bgiframe = true; jQuery(function(){ jQuery(''#dialog'').dialog({ url:''projects/show'', title:x, width:400, height:550, hide:''blind'', show:''blind'', resizable:true, buttons: { ''Cancel'': function(){ jQuery(this).dialog(''close'').effect(''blind''); jQuery(this).dialog(''close'').dialog(''destroy''); }, ''Submit Comments'': function(){ var c = {}; c[''authenticity_token''] = encodeURIComponent(window._token); jQuery.ajax({ type:''POST'', url:''/project/edit''+id, data:c, success: function(){ alert(''Success''); }, error: function(){ alert(''Error''); } }); } } }); }); } Thanks for any help. JohnM -- Posted via http://www.ruby-forum.com/.
Just a little more... I just want to update the textarea, not the table. This is all happening before the project is actually created. - new.html.erb - <td><%= f.label :comments, "Notes/Comments", {:tabIndex => 6}%><br /> <%= link_to_function(''Comments Window'', ''viewDialog("Notes/Comments")'') %> </td> John John Mcleod wrote:> Hello all, > I''m just a newbie with Ruby on Rails but I''ve worked a little more with > jQuery. > I have a RoR application that has a very long "New" form. One of the > fields in the form is "Project Notes". I have created a hyperlink to a > jQuery UI Dialog box that can stay open so the user can type notes while > filling in the form (for example during an interview). > I have used... > > <%= link_to_function(''Comments Window'', ''viewDialog("Notes/Comments")'') > %> > > to open the dialog box. The function ''viewDialog() is in the > application.js file in ''public'' folder. > > What I wish would happen is when submitted, the notes typed in the > dialog would be updated to the "projects" model. > > What''s happening is an error message is displaying and the firebug error > I get is "No route matches "/project/edit" with {:method=>:post}" > > Below is the script I''m running. > > - application.js - > function viewDialog(x){ > jQuery.ui.dialog.defaults.bgiframe = true; > jQuery(function(){ > jQuery(''#dialog'').dialog({ > url:''projects/show'', > title:x, > width:400, > height:550, > hide:''blind'', > show:''blind'', > resizable:true, > buttons: > { > ''Cancel'': function(){ > jQuery(this).dialog(''close'').effect(''blind''); > jQuery(this).dialog(''close'').dialog(''destroy''); > }, > ''Submit Comments'': function(){ > var c = {}; > c[''authenticity_token''] = encodeURIComponent(window._token); > jQuery.ajax({ > type:''POST'', > url:''/project/edit''+id, > data:c, > success: function(){ > alert(''Success''); > }, > error: function(){ > alert(''Error''); > } > }); > } > } > }); > }); > } > > Thanks for any help. > > JohnM-- Posted via http://www.ruby-forum.com/.
Solved my own... I was going at it all wrong. Instead of an ajax call, I just grabbed the value of the dialog textarea and then assigned it to the textarea in the original form. Here''s my code for anyone that has the same problem. - application.js - function viewDialog(x){ jQuery.ui.dialog.defaults.bgiframe = true; jQuery(function(){ jQuery(''#dialog'').dialog({ url:''projects/show'', title:x, width:400, height:550, hide:''blind'', show:''blind'', resizable:true, buttons: { ''Cancel'': function(){ jQuery(this).dialog(''close'').effect(''blind''); jQuery(this).dialog(''close'').dialog(''destroy''); }, ''Submit Comments'': function(){ //NEW LINES var notes = jQuery(''textarea#irbProject_notes'').val(); jQuery(''textarea#notes'').val(notes); } }); } - new.html.erb - // This the the DIV for the dialog. I placed it before the "form_for" <div id="dialog" style="display:none"> <% form_for :irbProject, :url => { :controller => ''project'', :action => ''update''} do |f| %> <%= f.error_messages %> <%= f.text_area :notes, :size => ''50x30'' %> <% end %> </div> // Here is the table row in the "form_for" <tr> <td> <%= f.label :comments, "Notes/Comments", {:tabIndex => 6} %><br /> <%= link_to_function(''Comments Window'', ''viewDialog("Notes/Comments")'') %> </td> <td><%= f.text_area :notes, :size => "50x5", :id=>''notes'' %> </td> </tr> I hope this helps anyone. Tuttles, John John Mcleod wrote:> Just a little more... > > I just want to update the textarea, not the table. > This is all happening before the project is actually created. > > - new.html.erb - > > <td><%= f.label :comments, "Notes/Comments", {:tabIndex => 6}%><br /> > <%= link_to_function(''Comments Window'', > ''viewDialog("Notes/Comments")'') %> > </td> > > John > > John Mcleod wrote: >> Hello all, >> I''m just a newbie with Ruby on Rails but I''ve worked a little more with >> jQuery. >> I have a RoR application that has a very long "New" form. One of the >> fields in the form is "Project Notes". I have created a hyperlink to a >> jQuery UI Dialog box that can stay open so the user can type notes while >> filling in the form (for example during an interview). >> I have used... >> >> <%= link_to_function(''Comments Window'', ''viewDialog("Notes/Comments")'') >> %> >> >> to open the dialog box. The function ''viewDialog() is in the >> application.js file in ''public'' folder. >> >> What I wish would happen is when submitted, the notes typed in the >> dialog would be updated to the "projects" model. >> >> What''s happening is an error message is displaying and the firebug error >> I get is "No route matches "/project/edit" with {:method=>:post}" >> >> Below is the script I''m running. >> >> - application.js - >> function viewDialog(x){ >> jQuery.ui.dialog.defaults.bgiframe = true; >> jQuery(function(){ >> jQuery(''#dialog'').dialog({ >> url:''projects/show'', >> title:x, >> width:400, >> height:550, >> hide:''blind'', >> show:''blind'', >> resizable:true, >> buttons: >> { >> ''Cancel'': function(){ >> jQuery(this).dialog(''close'').effect(''blind''); >> jQuery(this).dialog(''close'').dialog(''destroy''); >> }, >> ''Submit Comments'': function(){ >> var c = {}; >> c[''authenticity_token''] = encodeURIComponent(window._token); >> jQuery.ajax({ >> type:''POST'', >> url:''/project/edit''+id, >> data:c, >> success: function(){ >> alert(''Success''); >> }, >> error: function(){ >> alert(''Error''); >> } >> }); >> } >> } >> }); >> }); >> } >> >> Thanks for any help. >> >> JohnM-- Posted via http://www.ruby-forum.com/.