Customising url

Hi, In my web application i need to select date and and vendor to display the corresponding data When i select the date, it doesn't get displayed in the url i.e the url remains the same but when i select the vendor it appears in the url.

I want that even the vendor shouldn't get appeared in the url

Please help....

can you post your code?

Ajit Singh wrote:

can you post your code?

On Jun 20, 3:03 am, Sneha Ganvir <rails-mailing-l...@andreas-s.net

The code for the partial used in this attachment is

for vendor list is

<%= error_messages_for 'contract' %>

<%=

vendors = @contracts_vendor.each do |contract| vendors << contract.vendor

end

    select_tag "vendor",       options_for_select(         vendors,         session[:selected_vendor] ),          {:onchange=> link ,           :id=>"ctrlContent_ct200_VendorList",           :name=>"ctrlContent$ct200$VendorList",     }    %>

and the partial for selecting the date is as

<%=     d = Date.today     dates =     15.times do       dates << [d.strftime("%B %Y"), d.strftime("%Y%m")]       d = d << 1     end     select_tag "month",       options_for_select(         dates,         session[:selected_month] ),          {:onchange=> link ,           :id=>"ctrlContent_ctl00_MonthList",           :name=>"ctrlContent$ctl00$MonthList"}    %>

The controller code is for vendor

def set_selected_vendor

    if params[:vendor]       session[:selected_vendor] = params[:vendor]       @array_vendor = session[:selected_vendor]       #redirect_to :action=>action_name       #return false     end      return true   end

and controller code for date is

def set_selected_month

    if params[:month]       session[:selected_month] = params[:month]       # redirect back here without the month parameter:       redirect_to :action=>action_name       return false     end     unless session[:selected_month]       @month_start = Date.new(Date.today.year, Date.today.month, 1)       @month_end = @month_start>>1       # If it's early in the month (i.e. before the 11th), use last month as the default:       if Date.today.day < 11 then @month_start = @month_start<<1 end         session[:selected_month] = @month_start.strftime('%Y%m')       end     @month_start = Date.parse session[:selected_month] + "01"     @month_constraints_string = "date >= '" + @month_start.to_s +                    "' AND date < '" + (@month_start>>1).to_s + "'"

    return true   end

Please help me out of this.

Attachments: http://www.ruby-forum.com/attachment/2230/search_by_customer.rhtml

are you submitting the form ;onchange, ?

if yes then i will suggest you to check post method for both date and vendor. it should be "post" not "get". if you havent specified any.. i will recommend to explicitly put form method="post"

let me know, if this works for you.

Ajit

Yes i have already tried using method = "post" ( in controller,views and partials) But iam not sure whether i've used it correctly or not Please can you guide me where exactly i should use it

view source for your form in web-browser and post me the source for form part. if possible?

Ajit

Ajit Singh wrote:

view source for your form in web-browser and post me the source for form part. if possible?

Ajit

I've send you the view source of my browser..

Attachments: http://www.ruby-forum.com/attachment/2234/search_by_vendor_2_.txt

Hi Sneha

I just tested your document.. in both of the cases.. url is getting updated.

cant you simple create a form around those two elements and onchange submit the form

try something like: <javascript> function doSomething() { form1.element1.value = $F('select_one'); form1.element2.valie = $F('select_two'); form1.submit; } </javascript> <% form :id=>form1, :method => 'post' %> <% hidden_field :id=>element1%> <% hidden-field :id => element2 %>   <select_tag :id => select_one :onchange => doSomething()><%end%> <select_tag :onchange => doSomething()> <% end %>

let me know...

Ajit

Ajit Singh wrote:

Hi Sneha

I just tested your document.. in both of the cases.. url is getting updated.

cant you simple create a form around those two elements and onchange submit the form

try something like: <javascript> function doSomething() { form1.element1.value = $F('select_one'); form1.element2.valie = $F('select_two'); form1.submit; } </javascript> <% form :id=>form1, :method => 'post' %> <% hidden_field :id=>element1%> <% hidden-field :id => element2 %>   <select_tag :id => select_one :onchange => doSomething()><%end%> <select_tag :onchange => doSomething()> <% end %>

let me know...

Ajit

On Jun 21, 5:53 am, Sneha Ganvir <rails-mailing-l...@andreas-s.net>

Hi Ajit That's what my actual problem is I do not want to use the submit tag The values should get changed onclick I cannot use the seperate submit tag to submit the values Because my client demands that.

hmmm..

i dont think that it could be done otherwise. you can explain this to client.. there are only two methods to send information.. GET and POST. explain the difference between these two.

or you can try making an Ajax call.

let me know