2016-05-04 24 views
1

Symfony 3およびDatatablesを使用してメンバーとして選択する人物を表示するテーブルがあります。 1つまたは複数の行(メンバー)を選択できます。 Jqueryを使用して、選択したメンバーのIDを取得できます。今度は、選択したIDをメンバーとしてデータベースに保存します。しかし、私はこれを行う方法に苦労しています。 小枝で私のテーブルnewmembers.html.twigがsubmitボタンがあり、次のようになります。コントローラの選択された行からデータテーブルを取得する

... 

{% block body %} 
{{ form_start(form) }} 
<input type="submit" name="ids" id="submit" value="Add members" class="btn btn-primary" /> 

<table id="newmembers"> 
     <thead> 
      <tr> 
       <th class="hidden">Id</th> 
       <th>Name</th> 
      </tr> 
     </thead> 

     <tbody> 
     {% for person in persons %} 
      <tr> 
       <td class="hidden">{{ person.id }}</td> 
       <td>{{ person.lastname }}, {{ person.initials }} {{ person.middlename }}</td> 
      </tr> 
     {% endfor %} 
     </tbody> 
</table> 
{{ form_end(form) }} 
{% endblock %} 

{% block javascripts %} 
    <script type="text/javascript"> 
     $('#submit').click(function() { 
       var ids = $.map(table.rows('.selected').data(), function (item) { 
        return item[0] 
       }); 
       if (ids=='') { 
        alert('no member(s) selected'); 
        return false; 
       } 
       return(ids); 

    </script> 
{% endblock %} 

変数IDが、今私が保存したいすべてのメンバー-idを保持しています。 私のコントローラでは、私が出ている:

public function newAction(Request $request) 
{ 
    $members= new Member(); 
    $form = $this->createForm(MemberType::class, $member); 
    $form->handleRequest($request); 
     if ($form->isSubmitted() && $form->isValid()) { 
     $members = $form->getData('ids'); 
     //check if I have any results// 
     dump($members);die 
     //add saving to database...// 
     } 

    return $this->render('member/newmember.html.twig', array(
     'persons' => $persons, 
     'form' => $form->createView(), 
    )); 
} 

コントローラ$メンバーのいずれかの結果を返しません。明らかに私はここに何かが欠けている:私の小枝テンプレートからjquery配列 "ids"を私のコントローラに投稿する方法。

データベースに保存するために、選択された行/ IDのjquery配列をマイコンに投稿する(最良の)方法は何ですか?

答えて

1

あなたのIDを隠し入力(フォーム内)に置くことができます。このように<input type="hidden", name="ids", value="">。この値は、j​​Queryサブミット・イベントで設定できます。

+0

ありがとうございました。私はちょうどそれに取り組んでいたし、それは最善の解決策であるようだ。 – zef