Hey Guys... All of You... Thanks alot...... i have achieved it........i was struglling on it from 2 3 days....and without all of your help i wouldnt have successeded...... RUBY ON RAILS ROCK....thanks
On Thu, May 3, 2012 at 7:31 PM, Jeremy Walker <jez.wal...@gmail.com> wrote: > > > On 3 May 2012 14:38, akshar jamgaonkar <akshar.jamgaon...@gmail.com>wrote: > >> HEy cool.. Thanks a lot...it worked however with state drop down i also >> iam getting a lot of other un necessary html...... The html is what i have >> written in application.html.erb for templating purpose....... Is this the >> wrong way to write static html code in application.html.erb... Thanks a >> lot.... > > > You need to tell your view not render the layout. You should read the > Rails guide to rendering and layouts. I'll let you figure it out from there: > http://guides.rubyonrails.org/layouts_and_rendering.html > > Just for your reference, I feel that a better way of achieving what you're > doing would be: > * Have nested routes for countries and states and call the url at > /countries/1/states.json ( > http://guides.rubyonrails.org/routing.html#nested-resources) > * Have the index method of the StatesController respond to the .json > request and render the states back as a JSON array. Let the browser and > create the <option> tags using Javascript. > > IMHO that way is quicker, slicker and more maintainable. > > Also, in your current form, you could replace your $.ajax method with: > > $.get(country_states_path+country_id, function(data) { > $("#client_state_id").replaceWith(data); > } > }); > > Hope that's helpful. > > >> On Thu, May 3, 2012 at 7:02 PM, Jeremy Walker <jez.wal...@gmail.com>wrote: >> >>> >>> >>> On 3 May 2012, at 14:24, akshar jamgaonkar <akshar.jamgaon...@gmail.com> >>> wrote: >>> >>> Yes i have a Select box with this id = "client_state_id" .. when i run >>> $("#client_state_id") the select drop down control gets highlighted. Thanks >>> >>> >>> Try using replaceWith() instead of html() in your success function. >>> >>> >>> On Thu, May 3, 2012 at 6:46 PM, Jeremy Walker <jez.wal...@gmail.com>wrote: >>> >>>> >>>> >>>> On 3 May 2012, at 14:06, AJ <akshar.jamgaon...@gmail.com> wrote: >>>> >>>> > Hello All, >>>> > >>>> > ill just summarize everything in this message..kindly suggest as to >>>> > what might be wrong >>>> >>>> Do you have a div with the id of "client_state_id"? What do you get if >>>> you run $("#client_state_id") in firebug? >>>> >>>> Jeremy Walker >>>> >>>> > >>>> > >>>> > >>>> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- >>>> > Iam trying to achiev a functionlity of state drop down >>>> > been populated on click of country........i have achieved almost 90% >>>> > of this......iam getting appropriate responce in my firebug. responce >>>> > is like this when i click india..... >>>> > >>>> > <select id="states_state_id" name="states[state_id]"><option >>>> > value="2">Goa</option></select> >>>> > >>>> > >>>> > my application .js looks like this >>>> > >>>> > $(document).ready(function() { >>>> > var country_states_path = '/states/countries_state/'; >>>> > $("#client_country_id").change(function() { >>>> > var country_id = $(this).val(); >>>> > $.ajax({ >>>> > type: "GET", >>>> > data: {country: country_id}, >>>> > url: country_states_path+country_id, >>>> > success: function(data) { >>>> > $("#client_state_id").html(data) >>>> > } >>>> > }); >>>> > }); >>>> > }); >>>> > >>>> > >>>> > >>>> > the controller state has an action like this >>>> > >>>> > def countries_state >>>> > @state = State.where("country_id = :c_id",{:c_id => >>>> > params[:country_id]}) >>>> > respond_to do |format| >>>> > format.js >>>> > end >>>> > end >>>> > >>>> > >>>> > >>>> > and template for this action is like >>>> > >>>> > <%= select("states", "state_id", @state.collect{|s| [s.name,s.id]}) >>>> %> >>>> > >>>> > >>>> > However i am getting the response in firebug but the html on page is >>>> > not updated. Iam trying to find but iam stuck as iam a bit new to all >>>> > this. >>>> > >>>> > >>>> > Please suggest as to what might be wrong. thanks a lot >>>> > >>>> > >>>> > Thanks & Regards, >>>> > Akshar >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- >>>> > >>>> > >>>> > On May 3, 5:52 pm, akshar jamgaonkar <akshar.jamgaon...@gmail.com> >>>> > wrote: >>>> >> Hi all, >>>> >> >>>> >> I have succesfully got a responce like this as to what i want , this >>>> is the >>>> >> ouptut in my fireofx console. >>>> >> >>>> >> <select id="states_state_id" name="states[state_id]"><option >>>> >> value="1">Maharashtra</option></select>. >>>> >> >>>> >> but the html on the page is not updating.......any reson why this >>>> could be >>>> >> ...thanks a lot.... >>>> >> >>>> >> On Thu, May 3, 2012 at 5:58 PM, akshar jamgaonkar < >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> akshar.jamgaon...@gmail.com> wrote: >>>> >>> Also in the def countries_state >>>> >>> @state = State.where("country_id = :c_id",{:c_id => >>>> params[:country_id]}) >>>> >>> respond_to do |format| >>>> >>> format.html >>>> >>> end >>>> >>> end >>>> >> >>>> >>> previously the it was format.js when nothing on the page was >>>> changing >>>> >>> dynamically but when i make it format.html, the state drop down >>>> changes but >>>> >>> i get all the unnecessary thing like the the entire html page. >>>> >> >>>> >>> Thanks >>>> >> >>>> >>> On Thu, May 3, 2012 at 5:47 PM, akshar jamgaonkar < >>>> >>> akshar.jamgaon...@gmail.com> wrote: >>>> >> >>>> >>>> Hi Aziz.... >>>> >> >>>> >>>> Iam getting whatevr reponce iam nneding,....... Thansk a >>>> lot.....in >>>> >>>> the console in firbug when i see i get the states for a specific >>>> >>>> counytry.....The responce is like "[["Goa", 2]]" .... >>>> however >>>> >>>> whatever processing i do in application.js in not taking >>>> effect,,,,,, >>>> >> >>>> >>>> My application.js is >>>> >> >>>> >>>> $(document).ready(function() { >>>> >>>> var country_states_path = '/states/countries_state/'; >>>> >>>> $("#client_country_id").change(function() { >>>> >>>> var country_id = $(this).val(); >>>> >>>> $.ajax({ >>>> >>>> type: "GET", >>>> >>>> data: {country: country_id}, >>>> >>>> url: country_states_path+country_id, >>>> >>>> success: function(data) { >>>> >>>> $("#client_country_id").html(data) >>>> >>>> } >>>> >>>> }); >>>> >>>> }); >>>> >>>> }); >>>> >> >>>> >>>> On Thu, May 3, 2012 at 5:36 PM, Aziz Bookwala < >>>> aziz.bookw...@gmail.com>wrote: >>>> >> >>>> >>>>> Not a problem. >>>> >> >>>> >>>>> On Thu, May 3, 2012 at 5:32 PM, akshar jamgaonkar < >>>> >>>>> akshar.jamgaon...@gmail.com> wrote: >>>> >> >>>> >>>>>> Thanks Aziz ....thanks a lot...really appriaciate your help >>>> >> >>>> >>>>>> On Thu, May 3, 2012 at 5:31 PM, Aziz Bookwala < >>>> aziz.bookw...@gmail.com>wrote: >>>> >> >>>> >>>>>>> That is fine, though you could make it more 'RESTful' by adding >>>> it as >>>> >>>>>>> a nested resource. You can read about that here< >>>> http://railscasts.com/episodes/139-nested-resources>. >>>> >>>>>>> The RailsCast is a little old, but you should get the idea. >>>> >> >>>> >>>>>>> With respect to your current problem, what is the url you are >>>> using in >>>> >>>>>>> your js? >>>> >> >>>> >>>>>>> On Thu, May 3, 2012 at 5:23 PM, akshar jamgaonkar < >>>> >>>>>>> akshar.jamgaon...@gmail.com> wrote: >>>> >> >>>> >>>>>>>> Iam sorry i didnt get you.......... i have created a new >>>> action for >>>> >>>>>>>> the ajax stuff is this approach wrong..... This is how my >>>> states controller >>>> >>>>>>>> is >>>> >> >>>> >>>>>>>> >>>> --------------------------------------------------------------------------- >>>> --------------------------------------------------------------------------- >>>> ----------------------------------- >>>> >> >>>> >>>>>>>> class StatesController < ApplicationController >>>> >>>>>>>> # GET /states >>>> >>>>>>>> # GET /states.json >>>> >>>>>>>> def index >>>> >>>>>>>> @states = State.all >>>> >> >>>> >>>>>>>> respond_to do |format| >>>> >>>>>>>> format.html # index.html.erb >>>> >>>>>>>> format.json { render json: @states } >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >> >>>> >>>>>>>> # GET /states/1 >>>> >>>>>>>> # GET /states/1.json >>>> >>>>>>>> def show >>>> >>>>>>>> @state = State.find(params[:id]) >>>> >> >>>> >>>>>>>> respond_to do |format| >>>> >>>>>>>> format.html # show.html.erb >>>> >>>>>>>> format.json { render json: @state } >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >> >>>> >>>>>>>> # GET /states/new >>>> >>>>>>>> # GET /states/new.json >>>> >>>>>>>> def new >>>> >>>>>>>> @state = State.new >>>> >>>>>>>> respond_to do |format| >>>> >>>>>>>> format.html # new.html.erb >>>> >>>>>>>> format.json { render json: @state } >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >> >>>> >>>>>>>> # GET /states/1/edit >>>> >>>>>>>> def edit >>>> >>>>>>>> @state = State.find(params[:id]) >>>> >>>>>>>> end >>>> >> >>>> >>>>>>>> # POST /states >>>> >>>>>>>> # POST /states.json >>>> >>>>>>>> def create >>>> >>>>>>>> @state = State.new(params[:state]) >>>> >> >>>> >>>>>>>> respond_to do |format| >>>> >>>>>>>> if @state.save >>>> >>>>>>>> format.html { redirect_to @state, notice: 'State was >>>> >>>>>>>> successfully created.' } >>>> >>>>>>>> format.json { render json: @state, status: :created, >>>> >>>>>>>> location: @state } >>>> >>>>>>>> else >>>> >>>>>>>> format.html { render action: "new" } >>>> >>>>>>>> format.json { render json: @state.errors, status: >>>> >>>>>>>> :unprocessable_entity } >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >> >>>> >>>>>>>> def countries_state >>>> >>>>>>>> @state = State.find("country_id = :c_id",{:c_id => >>>> params[:country]}) >>>> >>>>>>>> respond_to do |format| >>>> >>>>>>>> format.html >>>> >>>>>>>> format.js >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >> >>>> >>>>>>>> # PUT /states/1 >>>> >>>>>>>> # PUT /states/1.json >>>> >>>>>>>> def update >>>> >>>>>>>> @state = State.find(params[:id]) >>>> >> >>>> >>>>>>>> respond_to do |format| >>>> >>>>>>>> if @state.update_attributes(params[:state]) >>>> >>>>>>>> format.html { redirect_to @state, notice: 'State was >>>> >>>>>>>> successfully updated.' } >>>> >>>>>>>> format.json { head :ok } >>>> >>>>>>>> else >>>> >>>>>>>> format.html { render action: "edit" } >>>> >>>>>>>> format.json { render json: @state.errors, status: >>>> >>>>>>>> :unprocessable_entity } >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >> >>>> >>>>>>>> # DELETE /states/1 >>>> >>>>>>>> # DELETE /states/1.json >>>> >>>>>>>> def destroy >>>> >>>>>>>> @state = State.find(params[:id]) >>>> >>>>>>>> @state.destroy >>>> >> >>>> >>>>>>>> respond_to do |format| >>>> >>>>>>>> format.html { redirect_to states_url } >>>> >>>>>>>> format.json { head :ok } >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >>>>>>>> end >>>> >> >>>> >>>>>>>> >>>> --------------------------------------------------------------------------- >>>> --------------------------------------------------------------------------- >>>> ------------------------------------ >>>> >> >>>> >>>>>>>> On Thu, May 3, 2012 at 5:20 PM, Aziz Bookwala < >>>> >>>>>>>> aziz.bookw...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>> Make sure ur using the currect URL for the new action. >>>> >> >>>> >>>>>>>>> On Thu, May 3, 2012 at 5:18 PM, akshar jamgaonkar < >>>> >>>>>>>>> akshar.jamgaon...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>>> Yea it looks like this... >>>> >> >>>> >>>>>>>>>> match "/states/countries_state/:country_id" => >>>> >>>>>>>>>> "states#countries_state" >>>> >> >>>> >>>>>>>>>> resources :clients >>>> >> >>>> >>>>>>>>>> resources :skill_sets >>>> >> >>>> >>>>>>>>>> resources :technologies >>>> >> >>>> >>>>>>>>>> resources :level_of_contacts >>>> >> >>>> >>>>>>>>>> resources :states >>>> >> >>>> >>>>>>>>>> resources :discounts >>>> >> >>>> >>>>>>>>>> resources :countries >>>> >> >>>> >>>>>>>>>> resources :roles >>>> >> >>>> >>>>>>>>>> get "home/index" >>>> >> >>>> >>>>>>>>>> On Thu, May 3, 2012 at 5:15 PM, Aziz Bookwala < >>>> >>>>>>>>>> aziz.bookw...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>>>> Make sure this route comes before the route entry for the >>>> country >>>> >>>>>>>>>>> resource. >>>> >> >>>> >>>>>>>>>>> On Thu, May 3, 2012 at 5:12 PM, akshar jamgaonkar < >>>> >>>>>>>>>>> akshar.jamgaon...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>>>>> Yes i have added....it looks like this >>>> >> >>>> >>>>>>>>>>>> match "/states/countries_state/:country_id" => >>>> >>>>>>>>>>>> "states#countries_state" >>>> >> >>>> >>>>>>>>>>>> On Thu, May 3, 2012 at 5:10 PM, Aziz Bookwala < >>>> >>>>>>>>>>>> aziz.bookw...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>>>>>> Did you add a route for this new action? >>>> >> >>>> >>>>>>>>>>>>> On Thu, May 3, 2012 at 5:08 PM, akshar jamgaonkar < >>>> >>>>>>>>>>>>> akshar.jamgaon...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>>>>>>> Thanks Aziz....... I have wriiten a countries_state >>>> action and >>>> >>>>>>>>>>>>>> in states controller, and in application.js i have >>>> modified the path like >>>> >>>>>>>>>>>>>> this >>>> >>>>>>>>>>>>>> var country_states_path = '/states/countries_state/'; >>>> however >>>> >>>>>>>>>>>>>> on console its giving me eroor like >>>> >>>>>>>>>>>>>> <pre>Couldn't find State with id=countries_state</pre> >>>> ... Iam >>>> >>>>>>>>>>>>>> struggling to find what;s going wrong as iam pretty new >>>> to all >>>> >>>>>>>>>>>>>> this...thanks a lot all of you for your help...... >>>> >> >>>> >>>>>>>>>>>>>> On Thu, May 3, 2012 at 5:03 PM, Aziz Bookwala < >>>> >>>>>>>>>>>>>> aziz.bookw...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>>>>>>>> Hey AJ >>>> >> >>>> >>>>>>>>>>>>>>> Yes, to serve any request made by your client, you >>>> would need >>>> >>>>>>>>>>>>>>> something on the server to handle the request. >>>> >>>>>>>>>>>>>>> As for rendering the dropdown, this is a pretty simple >>>> thing >>>> >>>>>>>>>>>>>>> to do with jQuery. Look around, you should find >>>> something quite easily. >>>> >> >>>> >>>>>>>>>>>>>>> On Thu, May 3, 2012 at 5:01 PM, akshar jamgaonkar < >>>> >>>>>>>>>>>>>>> akshar.jamgaon...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>>>>>>>>> Hey Aziz, >>>> >> >>>> >>>>>>>>>>>>>>>> really thanks for you repl..........so do i >>>> need to >>>> >>>>>>>>>>>>>>>> write a controller action that would return me the >>>> states depending on the >>>> >>>>>>>>>>>>>>>> country and how do i render the state drop down in >>>> Cilent Form...Thanks.... >>>> >> >>>> >>>>>>>>>>>>>>>> Thanks, >>>> >>>>>>>>>>>>>>>> AJ >>>> >> >>>> >>>>>>>>>>>>>>>> On Thu, May 3, 2012 at 4:46 PM, Aziz Bookwala < >>>> >>>>>>>>>>>>>>>> aziz.bookw...@gmail.com> wrote: >>>> >> >>>> >>>>>>>>>>>>>>>>> Hey AJ >>>> >> >>>> >>>>>>>>>>>>>>>>> In your ajax call, you need to pass the id of the >>>> selected >>>> >>>>>>>>>>>>>>>>> state if you are using a nested resource url >>>> structure. >>>> >>>>>>>>>>>>>>>>> Your js would looks something like this: >>>> >> >>>> >>>>>>>>>>>>>>>>> $(document).ready(function() { >>>> >>>>>>>>>>>>>>>>> var country_states_path = '/countries/:id/states; >>>> >>>>>>>>>>>>>>>>> $("#client_country_id").change(function() { >>>> >> >>>> >> ... >>>> >> >>>> >> read more ยป >>>> > >>>> > -- >>>> > You received this message because you are subscribed to the Google >>>> Groups "Ruby on Rails: Talk" group. >>>> > To post to this group, send email to >>>> rubyonrails-talk@googlegroups.com. >>>> > To unsubscribe from this group, send email to >>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>> > For more options, visit this group at >>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>> > >>>> >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Ruby on Rails: Talk" group. >>>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>> >>>> >>> >>> >>> -- >>> Thanks & Regards, >>> Akshar Jamgaonkar >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Talk" group. >>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>> To unsubscribe from this group, send email to >>> rubyonrails-talk+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Talk" group. >>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>> To unsubscribe from this group, send email to >>> rubyonrails-talk+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>> >> >> >> >> -- >> Thanks & Regards, >> Akshar Jamgaonkar >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to rubyonrails-talk@googlegroups.com. >> To unsubscribe from this group, send email to >> rubyonrails-talk+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- Thanks & Regards, Akshar Jamgaonkar -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.