Создайте форму для каждого флажка в цикле foreach с помощью Laravel - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь создать форму для каждого элемента (флажки) внутри элемента foreach и сохранить элемент в базе данных каждый раз, когда элемент проверяется. Моя проблема даже в том, что я создал форму внутри цикла foreach, поэтому каждый элемент имеет свою собственную форму; когда я проверяю элемент, я обнаруживаю, что все элементы включены в одну и ту же форму, и только первый проверенный элемент сохраняется в базе данных

вот мой код для создания формы для каждого элемента

@foreach($sessions as $session)
<h1> {{$session->quarter}} {{$session->year}} </h1>
@foreach($courses as $course)                  
    @if($session->id==  $course->quarterIDFk)
    <form action="{{route('course.add')}}" method="POST" id="report" > 
    <div class="aa">
    <div class="dd">
    <button >
    <section class="checkboxFour">
    <input hidden type="checkbox"  id="{{ $course->id}}" name="{{$course->id}}" onclick="showComboBox(id)"; />
    <label for="{{ $course->id}}"></label>
    </section>
    </button>
    <label class="class_name" value ="{{ $course->id}}" >{{ $course->courseNumber}}</label>
    <input hidden type="number" value="{{ $course->id}}"  name ="course"/>
    </div>

                        <div class="select-style" id="check{{ $course->id}}" hidden >
                            <select name="a">
                            <option value="" selected disabled hidden>Taken on </option>
                            <option value="Summer">Summer</option>
                            <option value="Fall">Fall</option>
                            <option value="Winter">Winter</option>
                            <option value="Spring">Spring</option>
                            </select>
                        </div>

                    </div>


                <!-- The Modal -->
                <div class="modal" id="myModal">
                <div class="modal-dialog">
                    <div class="modal-content">
                    <!-- Modal Header -->
                    <div class="modal-header">
                        <h4 class="modal-title">Modal Heading</h4>
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                    </div>

                    <!-- Modal body -->
                    <div class="modal-body">
                        Modal body..
                    </div>

                    <!-- Modal footer -->
                    <div class="modal-footer">
                        <button type="button" class="btn btn-danger" data-dismiss="modal" >Close</button>
                        <button type="button" class="btn btn-success" onclick="hideComboBox({{ $course->id}})" data-dismiss="modal">Yes</button>
                    </div>

                    </div>
                </div>
                </div>
            @endif

        @endforeach
        </from>
    @endforeach

и я использовал этот ajax-скрипт, чтобы страница не загружалась, когда я нажимал кнопку отправки

<script>
    $(function () {
        $('#report').submit(function (e) {
            e.preventDefault()  // prevent the form from 'submitting'

            var url = e.target.action  // get the target
            var formData = $(this).serialize() // get form data
            $.post(url, formData, function (response) { // send; response.data will be what is returned
                //  alert('report sent')
            })
        })
    })
</script>

и вот функция контроллера для сохранения проверенных элементов в базе данных

 public function store(Request $request)
{
    if(!empty($request->a))
    {
    $claass = new Taken_classes  ; 
    $claass->idUser  = Auth::user()->id ; 
    $claass->idCourse  = $request->course;
    // $claass->idCourse  = 12;
    $claass->taken_session  =  $request->a;
    $claass->save() ; }

Я ожидаю сохранить каждый отмеченный элемент в базе данных, но сохраняется только первый отмеченный элемент

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