Как использовать выбранные элементы в datatable в качестве массива, сохранить в базе данных все данные, перечисленные в строке, используя laravel - PullRequest
0 голосов
/ 14 мая 2019

[! [Введите описание изображения здесь] [1]] [1] У меня есть моя дилемма.Мне нужно знать, как получить все данные, только выбранный с проверкой в ​​таблицах данных.Затем он будет сохранен в базе данных в виде массива в строке с добавленными данными, такими как идентификатор.В моем примере я еще не добавил форму, которая является самой важной частью кода.Пожалуйста, помогите мне с этим .. Я хочу сохранить данные, поступающие из таблицы данных, в качестве student_ID, Inst_id, Subject_code, School_year, Semester.Допустим, если выбрано 4 класса, он будет сохранен в базе данных как четыре строки данных, которые включают все поля упоминания выше.Я думаю, что для этого нужен Javascript, но у меня пока нет идеи, как это сделать.Кстати, я использую laravel 5.7.

Большое спасибо за ваш ответ на этот вопрос.

Это контроллер ученика для зачисления ученика


public function enrollStudent(Request $request, $id=null){

        $studentDetails = Students::find($id);
        $classes = Classes::get();
        return view('admin.enrollment.enroll_student')->with(compact('classes','studentDetails'));

    }

это мой enroll_student.blade.php

@extends('layouts.adminLayout.admin_design')
@section('content')
<div id="content">
   <div id="content-header">
      <div id="breadcrumb"> <a href="#" title="Go to Home" class="tip-bottom"><i class="icon-home"></i> Home</a> <a href="#" class="current">Tables</a> </div>
      <h1>Enrollment</h1>
   </div>
   <div class="container-fluid">
      <hr>
      <div class="row-fluid">
         <div class="span12">
            <div class="widget-box">
               <div class="widget-title">
                  <span class="icon"> <i class="icon-info-sign"></i> </span>
                  <h5>Enroll Student</h5>
               </div>
               <div class="widget-content nopadding">
                  <form class="form-horizontal" method="post" action="{{ url('admin/enroll-student/'.$studentDetails->id)}}" name="edit_student" id="edit_student" novalidate="novalidate">
                     {{csrf_field()}}
                     <div class="control-group">
                        <label class="control-label">Student Id</label>
                        <div class="controls">
                           <input type="text" name="id" id="id" value="{{ $studentDetails->id}}" disabled>
                           <span class="input-group-btn" style="font-size:14px;" >&nbsp;&nbsp;&nbsp;&nbsp;School Year</span>&nbsp;&nbsp;
                           <input type="text" name="class_sy" id="class_sy" value="{{ $studentDetails->student_sy}}" disabled>
                        </div>
                     </div>
                     <div class="control-group">
                        <label class="control-label">Student Number</label>
                        <div class="controls">
                           <input type="text" name="stud_no" id="stud_no" value="{{ $studentDetails->stud_no}}" disabled>
                           <span class="input-group-btn" style="font-size:14px;" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Semester</span>&nbsp;&nbsp;
                           <input type="text" name="student_sem" id="student_sy" value="{{ $studentDetails->student_sem}}" disabled>
                        </div>
                     </div>
                     <div class="control-group">
                        <label class="control-label">Last Name</label>
                        <div class="controls">
                           <input type="text" name="lastname" id="lastname" value="{{ $studentDetails->lastname}}" disabled>
                        </div>
                     </div>
                     <div class="control-group">
                        <label class="control-label">First Name</label>
                        <div class="controls">
                           <input type="text" name="firstname" id="firstname" value="{{ $studentDetails->firstname}}" disabled>
                        </div>
                     </div>
                     <div class="control-group">
                        <label class="control-label">Course</label>
                        <div class="controls">
                           <select name="course" id="course" style="width:220px;" selected disabled>
                           <option @if($studentDetails->course=="ABE") selected @endif value="ABE">ABE</option>
                           <option @if($studentDetails->course=="BEED") selected @endif value="BEED">BEED</option>
                           <option @if($studentDetails->course=="BSED") selected @endif value="BSED">BSED</option>
                           <option @if($studentDetails->course=="BSA") selected @endif value="BSA">BSA</option>
                           </select>
                        </div>
                     </div>
                     <div class="form-actions">
                        <input type="submit" value="Enroll Classes on Student" class="btn btn-success">
                     </div>
                  </form>
               </div>
            </div>
            <div class="widget-box">
               <div class="widget-title">
                  <span class="icon">
                  <input type="checkbox" id="title-checkbox" name="title-checkbox" />
                  </span>
                  <h5>Select Filtered Classes</h5>
               </div>
               <div class="widget-content nopadding">
                  <table class="table table-bordered data-table">
                     <thead>
                        <tr>
                           <th><i class="icon-resize-vertical"></i></th>
                           <th>ID</th>
                           <th>Inst ID</th>
                           <th>Subj ID</th>
                           <th>SubjCode</th>
                           <th>A.Y.</th>
                           <th>Sem</th>
                           <th>Start Time</th>
                           <th>End Time</th>
                           <th>Section</th>
                           <th>Days</th>
                           <th>Room</th>
                        </tr>
                     </thead>
                     <tbody>
                        @foreach($classes as $class)
                        <tr class="gradeX">
                           <td><input type="checkbox"></td>
                           <td>{{$class->id}}</td>
                           <td>{{$class->inst_id}}</td>
                           <td>{{$class->subj_id}}</td>
                           <td>{{$class->subj_code}}</td>
                           <td>{{$class->class_sy}}
                           <td>{{$class->class_sem}}
                           <td>{{$class->class_starttime}}    
                           <td>{{$class->class_endtime}}  
                           <td>{{$class->section}} 
                           <td>{{$class->days}}   
                           <td>{{$class->room}}                 
                           </td>
                        </tr>
                        @endforeach
                     </tbody>
                  </table>
               </div>
            </div>
         </div>
      </div>
   </div>
</div>
@endsection

1 Ответ

0 голосов
/ 14 мая 2019

На мой взгляд, вам не нужно использовать javascript. В качестве простого способа вы можете добавить подсказку к своим флажкам, например class-> id

@foreach($classes as $class)
                        <tr class="gradeX">
                           <td><input type="checkbox" name="selected_classes[]" value="{{ $class->id }}"></td>
....

На стороне сервера вам просто нужно использовать REPLACE INTO. Благодаря Laravel для обеспечения updateOrCreate, который идеально подходит для здесь.

foreach($request->selected_classes as $selected_class){
    App\Enrollment::updateOrCreate(
        ['class_id'=> $selected_class, 'student_id'=>$student_id],
        ['update_at' => time()]
    );
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...