Forum: Ruby on Rails Passing parameter from a dropdown.

Posted by Avi (Guest)
on 2012-12-20 05:55
(Received via mailing list)
Hello,

I have a dropdown in the UI. There are many oprions.
How do I send the parameter from the dropdown - the selected value to 
the
controller?

I have tried :-

1. <%= select_tag 'name', options_for_select(@list, :selected) %>
2. <%= select("audit", "value",options_for_select([["User Registration",
"USER_REGISTRATION"], ["Download", "USER_REPORT"]], :selected =>
params[:value]) %>

I am not getting any parameters passed to the controller.
Posted by Jim ruther Nill (jimboker)
on 2012-12-20 06:42
(Received via mailing list)
On Thu, Dec 20, 2012 at 12:53 PM, Avi <aavinash.behera@gmail.com> wrote:

> "USER_REGISTRATION"], ["Download", "USER_REPORT"]], :selected =>
> params[:value]) %>
>
> I am not getting any parameters passed to the controller.
>

make sure that the select tag above is part of the form you are 
submitting
and that you
are actually submitting to the right action.  A quick look on your code
raised no issues.


> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



--
Posted by Avi (Guest)
on 2012-12-20 06:46
(Received via mailing list)
I am not adding any form because there is no model for this page.
Only there is controller and view.
Posted by Jim ruther Nill (jimboker)
on 2012-12-20 07:21
(Received via mailing list)
On Thu, Dec 20, 2012 at 1:45 PM, Avi <aavinash.behera@gmail.com> wrote:

> I am not adding any form because there is no model for this page.
> Only there is controller and view.
>

you need to add a form to pass the selected values to the controller. 
It
doesn't
matter whether you're accessing a model or not.


>>> I have a dropdown in the UI. There are many oprions.
>>> I am not getting any parameters passed to the controller.
>>> --
>>> .
>  --
>
>



--
Posted by Avi (Guest)
on 2012-12-21 07:48
(Received via mailing list)
Sorry for late reply...

Can't we pass the param through ajax or js ?
Posted by Jim ruther Nill (jimboker)
on 2012-12-21 07:50
(Received via mailing list)
On Fri, Dec 21, 2012 at 2:46 PM, Avi <aavinash.behera@gmail.com> wrote:

> Sorry for late reply...
>
> Can't we pass the param through ajax or js ?
>

yes you can. you have to read on ajax.


>>> Only there is controller and view.
>>>>
>>>>> I have tried :-
>>>> submitting and that you
>>>>> To unsubscribe from this group, send email to rubyonrails-ta...@**
>>>>
>>> To unsubscribe from this group, send email to rubyonrails-ta...@**
>>
> To unsubscribe from this group, send email to
> rubyonrails-talk+unsubscribe@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/rubyonrails-talk/-....
>
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



--
Posted by Avi (Guest)
on 2012-12-21 13:34
(Received via mailing list)
Somehow I did manage to pass the parameter from the dropdown to 
controller.
But the problem is here - I am getting it as string.

In Controller:----

class ReportController < ApplicationController

  REPORT1         = "type =?", "Box"
  REPORT2         = "action = ? and type =?", "create", "Square"


 def report
   param = params[:audit_report] // How to convert this string to an 
object
or static variable ? Or what is the best way to do it ?
   @report_data              =
(Audited::Adapters::ActiveRecord::Audit.where(param))
// If I am passing this param, it comes as a string not as static 
varaible
in this controller.
 end

end

In View :----

<script type="text/javascript">
        function audit_options(selected_audit){
 jQuery("#reports").load("/audit_report/report?audit_report=" +
selected_audit);
        }
</script>

<%= select_tag "reports_name", options_for_select([["User1", "REPORT1"],
["User2", "REPORT2"]]), :onchange =>"audit_options(this.value)" %>

<div id="reports">
 </div>


-------------------
Posted by Jim ruther Nill (jimboker)
on 2012-12-21 14:58
(Received via mailing list)
Sent from my iPhone

On 21/12/2012, at 8:32 PM, Avi <aavinash.behera@gmail.com> wrote:

>
> <script type="text/javascript">
>         function audit_options(selected_audit){
>      jQuery("#reports").load("/audit_report/report?audit_report=" + 
selected_audit);
>         }
> </script>
>
> <%= select_tag "reports_name", options_for_select([["User1", "REPORT1"], 
["User2", "REPORT2"]]), :onchange =>"audit_options(this.value)" %>
>
> <div id="reports">
>
>   </div>

You should read on action controller basics. And also on debugging using 
pry or debugger so you can experiment on what you want to achieve. Good 
luck!
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.