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 "[[&quot;Goa&quot;, 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.

Reply via email to