0

私のプロジェクトでは, 私は一対多の関係を持っています (クライアントは多くの連絡先を持っています). 今, 私はクライアントをドロップダウンメニューにリストしています. 私が欲しいのは, 選択したクライアントの連絡先をチェックとして動的にレンダリングすることです. -ボックス。

これが私の _form.html.haml の (一部) で、Ajax リクエストを送信する jQuery の部分です。

  %h4 This meeting is made for :
  = f.input :client_id, collection:(Client.all)
  %br
  %hr     


  %h4 Assign Contacts:
  //HERE WHERE I REALLY WANT THE CHECKBOXES TO BE REDNERED DYNAMICALLY.
  = check_box_tag "contact_ids[]", c.id, @meeting.contacts.include?(c)
  = c.first_name
  %br


  :javascript
    $(document).ready(function (){
      $('#meeting_client_id').change(function(){
      var state = $('#meeting_client_id :selected').val();
      if(state !== "")
      {
        $.getJSON('/clients/client_contacts/' + state, function(data){
        console.log(data);
        })
      }
     return false;
     })
   });

ここに、リクエストを処理する Clients_controller アクションがあります。

def client_contacts
  client = (params[:id])
  cou = Contact.where(client_id: client)
  @msg = { "success" => "true", "message" => "hello", "count" => cou}
  respond_to do |format|
    format.html
    format.json { render json: @msg }
  end
end

コンソールで、リクエストがカウントとオブジェクトを返していることがわかります。

したがって、私は JS/jQuery に本当に慣れておらず、Rails にもかなり慣れていないため、ここからどのように取得すればよいか本当にわかりません。

ヒント/記事/リンク/ヘルプまたはアドバイスは、本当に感謝しています.

4

2 に答える 2

1

これを試して:

$.getJSON('/clients/client_contacts/' + state, function(data){
    console.log(data);
    data.each(function(){
        var id = data.id;
        var name = data.firstName;
        //add to new div with id myDiv
        $('#myDiv').append('<input name='+ id +' type="checkbox" /> ' + name + '<br />');)
    });
});
于 2013-09-10T14:53:27.400 に答える