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.