2017-06-01 28 views
0

私が選択した生徒のクラスデータを更新したいと思います。しかし、私が選択した生徒データが正しく更新されていないという制約があります。 私のコードを書く際のエラーは何ですか?複数の更新laravel with checkbox(LARAVEL 5.2)

最初、私は学生のテーブルを持っている:

{!! Form::open(['method' => 'POST', 'action' => ['[email protected]_kelas']]) !!} 
    <div class="panel panel-primary"> 
    <div class="panel-heading" align="center">Daftar Data Siswa</div> 
    <table id="dataSiswa" class="table table-striped"> 
     <thead> 
     <tr> 
      <th><input type="checkbox" name"select-all" id="select-all" /> 
      <th>NIPD</th> 
      <th>NISN</th> 
      <th>Nama Siswa</th> 
      <th>Kelas</th> 
      <th>Action</th> 
     </tr> 
     </thead> 
     <tbody> 
     <?php foreach($data_kelas as $siswa): ?> 
     <tr> 
      <td><input type="checkbox" name="checkbox" id="checkbox" value="{{ $siswa->id }}"></td> 
      <td>{{ $siswa->nipd }}</td> 
      <td>{{ $siswa->nisn }}</td> 
      <td>{{ $siswa->nama_siswa }}</td> 
      <td>{{ $siswa->kelas->nama_kelas }}</td> 
      <td> 
      <div class="box-button"> 
       {{ link_to('siswa/' . $siswa->id, '', ['title' => 'Detail', 'class' => 'btn btn-info btn-sm glyphicon glyphicon-list']) }} 
      </div> 
      <div class="box-button"> 
       {{ link_to('siswa/' . $siswa->id . '/edit', '', ['title' => 'Edit', 'class' => 'btn btn-warning btn-sm glyphicon glyphicon-edit']) }} 
      </div> 
      <div class="box-button"> 
       {!! Form::open(['method' => 'DELETE', 'action' => ['[email protected]', $siswa->id]]) !!} 
       <button type="submit" class="btn btn-danger btn-sm" title="Hapus"><i class="glyphicon glyphicon-trash"></i></button> 
       {!! Form::close() !!} 
      </div> 
      </td> 
     </tr> 
     <?php endforeach ?> 
     </tbody> 
    </table> 
    </div> 
    {!! Form::submit('Pindah Kelas', ['class' => 'btn btn-primary form-control']) !!} 
    {!! Form::close() !!} 

これは私のコードでのjavascript:

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#select-all').click(function(){ 
     if(this.checked) { 
     $(':checkbox').each(function(){ 
      this.checked = true; 
     }); 
     } 
     else { 
     $(':checkbox').each(function(){ 
      this.checked = false; 
     }); 
     } 
    }); 
    }); 
</script> 

そして第二に、これは私のルートである:

Route::get('siswa/pencarian_siswa', '[email protected]_siswa'); 
Route::resource('siswa', 'SiswaController'); 
Route::post('siswa', '[email protected]_kelas'); 

最後のIコントローラあり:

public function pindah_kelas(Siswa $siswa, Request $request) 
{ 
    $input = $request->id; 
    $siswa->update($input)->whereIn('id', $input(['id_kelas' => 3])); 
    Session::flash('flash_message', 'Data Siswa Berhasil Diupdate.'); 
    return redirect('kelas'); 
} 

私の質問は、私が選択した生徒データから、現在のクラスの生徒を別のクラスに移管する方法をどのように更新するのですか? 私はあなたが

+0

1つの可能な解決策は、前回の前回のデータを削除チェックボックスをチェックして新しい –

+0

を挿入することができます。この$ request-> idはどこから来ますか?私は名前 'id'を持つフォーム入力を表示しません – Demonyowh

答えて

0

最初のアップデートが間違っているなら、この問題を解決するために私を助けることができるかどうか...それは、これがチェックインされたすべてのレコードのid_kelasを更新します

$siswa::whereIn('id', $request->checkbox)->update(['id_kelas' => $request->id]); 

ようにする必要があり、非常に感謝していますチェックボックスは$request->idという値になります。あなたのコードでどこを取得するのかはわかりませんが、私はそれがあなたの目標だと思っています。

別のエラーはフォームを閉じるための最初のチェックボックスループで..コードは、フォームがそこで終わると仮定します..

+0

Grammar.php行のErrorException 118: Illuminate \ Database \ Grammar :: parameterize()に渡された引数1は、指定された文字列型の文字列でなければなりませんC:¥wamp64¥www¥stpbapp¥vendor¥laravel¥framework¥src¥Illuminate¥Database¥Query¥Grammars¥Grammar.php 376行目で –

+0

を定義すると、 'dd($ request-> checkbox);'それは価値です – Demonyowh