2017-02-28 7 views
1

チェックボックスの要素('yes'または 'no')を選択して、出席者を確認できるようにテーブルを作成しています。このページを更新する必要はありません。私はコードを(論理的に)書いたが、は動作していないだ。ここに私のvisit.blade.phpページを更新せずにチェックボックスの表を挿入する方法LARAVEL PHP SQL?

>@extends('header') 
>@section('content') 
> ... 
> <div> 
> ... 
> <tbody class="compact "> 
>     @forelse ($group->students as $key => $student) 
>      <tr class="center aligned"> 
>       <td>{{ ++$key }}</td> 
>       <td class="left aligned">{{ $student->fio }}</td> 
>       @for($k = 1; $k<=$group->number_of_lessons; $k++) 
>        <td> 
>         @if($student->has) 
>          <div class="ui checkbox visit"><input type="checkbox" name="example" data-group-id="{{ 
> $group->id }}" data-student-id="{{ $student->id }}" 
> data-lesson-id="{{$lesson->id}}"> 
>          </div> 
>         @else 
>          <div class="ui checkbox visit"><input type="checkbox" name="example" data-group-id="{{ 
> $group->id }}" data-student-id="{{ $student->id }}" 
> data-lesson-id="{{$lesson->id}}"> 
>          </div> 
>         @endif 
> 
> 
>        </td> 
>       @endfor 
>      </tr> 
>     @empty 
>      <tr class="center aligned"> 
>       <td></td> 
>      </tr> 
>     @endforelse 
>     </tbody> 
>  </div> 
> @endsection 

は私のapp.js

> $('.button.add.lesson.attandence').click(function(){ 
>   var lesson_id = $(this).data('lesson-id'); 
>   var student_id = $(this).data('student-id'); 
>   var group_id = $(this).data('group-id'); 
>   var $addButton =($this); 
>   $.ajax({ 
>    url:laroute.route('group.visits',{id:group_id}), 
>    data:'student-id=' + student_id, 
>    data:'lesson-id=' + lesson_id, 
>    success:function(){ 
>     $addButton.parent().parent().add(); 
>     alertify.success('Attendance checked'); 
>    } 
>   }); 
> 
>  }); 
あなたここで問題を解決するためにどのように私を助ける はアドバンスにありがとうみんな

ですでした

ここに私のController.php

ここで
> public function visits($id){ 
>   $group = Group::findOrFail($id); 
>   foreach(Student::all() as $student) { 
>    $data['students'][$student->id] = $student->fio; 
>   } 
>   return view('groups.visit', compact('group', 'data')); 
> 
>  } 

ここに私のroutes.phpの

Route::get('group/{id}/visits', ['as' => 'group.visits', 'uses' => '[email protected]']); 
Route::post('group/{id}/visits', ['as' => 'group.visits', 'uses' => '[email protected]']); 

は私がヶ月以上前qustionを尋ねたテーブルビュー表IMAGE https://scontent-frt3-1.xx.fbcdn.net/v/t31.0-8/fr/cp0/e15/q65/16992175_779940032172228_6157498598844322627_o.jpg?efg=eyJpIjoidCJ9&oh=5d746dd6dd90e12ed5e379b9ad02f0b4&oe=5935D05C

答えて

1

へのリンクです。自分で試してみると、やっと私はこれをやった。だから私は答えを投稿しています。おそらく誰かがこれを将来必要とするでしょう。 私は訪問テーブルを持っていました。だから私は

> public function addStudent($id, Request $request){ 
>  $group = Group::findOrFail($id); 
>   $group->students()->sync([$request->student_id],$detaching = false); 
>    $lessons = Lesson::where('group_id', $id)->get(); 
> 
>    foreach ($lessons as $k => $lesson) { 
>     $visit = new Visit(); 
>     $visit->group_id = $id; 
>     $visit->lesson_id = $lesson->id; 
>     $visit->student_id = $request->student_id; 
>     $visit->has = false; 
>     $visit->save(); 
>    } 
> 
>   return back(); 
>  } 

は、その後、私は、私はこの代わりに

> @foreach($student->visits as $k => $visit) 
>        <td> 
>         <div class="ui {{ $visit->has ? 'checked':'' }} checkbox visit"> 
>          <input type="checkbox" data-group-id="{{ $group->id }}" data-visit-id="{{ $visit->id }}" {{ 
> $visit->has ? 'checked':'' }}> 
>         </div> 
>        </td> 
>       @endforeach 

追加visit.blade.phpに古い@if@andifを削除し、私は最後に私がこれを書いたController.phpにいくつかのより多くの行を追加しましたapp.js

> $('.checkbox.visit').checkbox({ 
>   onChange: function() { 
>    var group_id = $(this).data('group-id'); 
>    var visit_id = $(this).data('visit-id'); 
>    var has = ($(this).parent().checkbox('is checked') ? 1:0); 
>    $.ajax({ 
>     url: laroute.route('group.visits', { id : group_id }), 
>     data: 
>      'visit_id=' + visit_id+ 
>      '&has=' + has, 
>     success: function(result) { 
>      if(result.success) { 
>       alertify.success(result.success); 
>      } 
>     } 
>    }); 
>   } 
>  }); 

上のスクリプトは、私はそれをしなかった;)

関連する問題