2016-04-04 5 views
-1

DefaultTemplateモデルには既存のレコードが含まれています。私は別のTemplateモデルを持っています。私はDefaultTemplateのレコードでcollection_selectを持っています。新しいフォームのテキストフィールドに、選択したレールの別のモデルの既存レコードからの入力

私がしたいことは、ユーザーがこれらのオプションのいずれかを選択すると、コンテンツやタイプなどの関連データを新しいテンプレートのtext_fieldsに自動的に入力して保存できるようにすることです。

私は調査して、JQueryとAjax Callでこれを行うことができますが、どこから始めたらいいのか分かりません。私はAuto populate text_fields based on selected item from another collection_select in Rails 3を参照し、それは私が望むものに答えるが、人間自身がコードを恐ろしいものにする。私はどんな助けにも感謝します。ありがとう

+0

を助けました。 –

+0

これで何がひどいですか?私はそれを直接的かつ単純に保つように努めました。何が間違っているの? – Aakanksha

+0

これは8行の連続テキストです。いくつかの改行を使用できます。あなたがそれを再フォーマットすると私にpingしてください。私は下の投票を削除します。 –

答えて

0

SOLVED !!

大丈夫なので、私の頭を2日間掻いた後、答えはやや単純だった。私はあまりにも恐れて、あまりにも多くの注意を払ったことがないような試みをAJAXに与えています。同じことを探している人のために、ここでは私のために働く解決策があります。

application.jsは、我々は減らすことができます

<%= form_for(@email_template) do |f| %> 
    <div class="field"> 
    <%= f.label :default_email_template_id, "Template Type" %> 
    <%= f.collection_select(:id, DefaultEmailTemplate.all, :id, :email_type, {prompt: "Select one"}, {:data => {remote: true}}) %> 
    </div> 
    <div class="field"> 
    <%= f.label :email_subject %> 
    <%= f.text_field :email_subject %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

(DefaultEmailTemplateは、値の選択に登場しなければならないモデルであるEmailTemplateの_form.html.erbで)見る

$(function($) { 
    $("#email_template_id").change(function() { 
     var selected_id = $("#email_template_id").val() 
     if (selected_id == '') 
     { 
      $('#email_template_email_subject').val('') 
     } 
     else { 
      $.ajax({ 
      type: "GET", 
      url: "/default_email_templates/" + selected_id + ".json", 
      dataType: 'json', 
      success: function(data){ 
       $('#email_template_email_subject').val(data.email_subject) 
      } 
      }); 
     } 
    }); 
}); 

を提出します単純にパラメータを1つずつ渡すだけで、Ajaxコードを作成することができますが、私はそれをよく認識しておらず、dintは実際にそれを実際に試しています。コードに関する提案を投稿してください。 〜

P.S:たぶん私は正しく見ていませんでしたが、私が行ったとき、これらがひどくフォーマットされた質問のために私をたくさん

How to do an Ajax GET request to get data from rails and pass it to javascript(google maps)? Downvoting

passing text_field values in ajx on rails

+0

@Aakanshaを共有してくれてありがとう –

-1

public JsonResult FillTask(int projectID) 
 
     { 
 
      List<tbltask> task = new List<tbltask>(); 
 
      task = te.getTasks(projectID); 
 
      model.Tasks = task; 
 
      model.task = task.Select(x => new SelectListItem 
 
      { 
 
       Value = x.TaskId.ToString(), 
 
       Text = x.TaskName 
 
      }).ToList(); 
 
      //var tasks = model.Tasks.Where(c => c.ProjectId == project); 
 
      return Json(model, JsonRequestBehavior.AllowGet); 
 
     }

<script type="text/javascript"> 
 
    $(document).ready(function() { 
 
     $("#tblprojects").change(function() 
 
     { 
 
      var projectID = $('#tblprojects').val(); 
 
      if(projectID>0){ 
 
       FillTask(projectID) 
 
      } 
 
     }); 
 
    }); 
 
    function FillTask(projectID) { 
 
     $.ajax({ 
 
      url: '@Url.Action("FillTask", "TimeEntry")', 
 
      type: "GET", 
 
      dataType: "JSON", 
 
      data: { 'projectID': projectID}, 
 
      success: function (data) { 
 
       $(data.task).each(function() 
 
       { 
 
        //this refers to the current item being iterated over 
 
        var option = $('<option />'); 
 
        option.attr('value', this.Value).text(this.Text); 
 

 
        $('#task').append(option); 
 
       }); 
 
      } 
 
     }); 
 
    } 
 
</script>

私は別のドロップダウンにそのプロジェクトの負荷のプロジェクトタスクの詳細をクリックした場合にのみ、そのプロジェクトに関連するタスクをバインドしていますajaxとjqueryを使用したカスケードドロップダウンと呼ばれるものです。ジェイソンメソッド

+0

カスケードセレクトがよく見えます。私はそれを試して、あなたに戻ってきます。ありがとう – Aakanksha

+0

私は実際にそれを適用するが、これの高尚な場合でも。しかし、これは私の仕事の次の段階で私に役立つ何かを知るようになったので本当に役に立ちました。これのためにあなたに戻ってきます。 – Aakanksha

+0

ようこそ@Aakanshaあなたはいつでも助けが必要かどうか尋ねることができます。 –

関連する問題