#php #html #laravel #visual-studio-code #datatables
Вопрос:
Как мне создать функцию php в моем контроллере, которая сохраняет определенную строку, указанную флажком? Эту строку данных необходимо будет добавить в базу данных SQL при нажатии кнопки отправить. Это то, что я пробовал до сих пор, но, похоже, это не работает
@extends('layouts.app')
@include('partialViews.navigation')
@section('content')
<div class="container">
<div class="row justify-content-center">
@yield('navigation')
<div class="col-md-8">
<div class="card">
<table id="example" class="data-table table table-striped">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Stage</th>
<th scope="col">Bedrijf</th>
<th scope="col">Afdeling</th>
<th scope="col">Locatie</th>
<th scope="col">Periode</th>
</tr>
</thead>
<tbody>
@foreach ($stagevoorstelen as $key => $stagevoorstel)
<tr>
<td scope="row">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="tableMaterialCheck2">
</div>
</td>
<td>{{$stagevoorstel->assignment->title ?? "stagair"}}</td>
<td>{{$stagevoorstel->companyContact1->department->company->name}}</td>
<td>{{$stagevoorstel->companyContact1->department->name ?? ""}}</td>
<td>{{$stagevoorstel->companyContact1->department->company->city}}</td>
<td>{{$stagevoorstel->assignment->year ?? ""}} {{$stagevoorstel->assignment->semester ?? ""}}</td>
</tr>
@endforeach
</tbody>
</table>
<div id="buttontjes">
<tr>
<td><button type="submit" id="btn-save" value="create" class="btn btn-sm">opslaan</button></td>
</tr>
</div>
</div>
</div>
</div>
</div>
@endsection
Это контроллер, я понятия не имею, что включить в свою функцию!
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppRepositoriesContractsStageVoorstelRepository;
class student_bekijkstagesController extends Controller
{
/**
* @var StagevoorstelRepository
*/
private $stageVoorstel;
/**
* kaartjesWeergevenTestController Constructor
*
* @param StageVoorstelRepository $stagevoorstel
*/
public function __construct(StageVoorstelRepository $stageVoorstel)
{
//$this->middleware('auth');
$this->stageVoorstel = $stageVoorstel;
}
/**
* Show the application dashboard.
*
* @return IlluminateContractsSupportRenderable
*/
public function index()
{
return view('student_bekijkstages',['stagevoorstelen' => $this->stageVoorstel->getAvailableForStudents()]);
}
public function save(Request $request){
if($request->submit == "Save"){
}
}
}
Комментарии:
1. Я не вижу html-тега формы. Включено ли это в представление??
2. Я им не пользовался!
Ответ №1:
Поскольку вы не используете форму, вы можете использовать JS для сбора checked row
данных, и POST
это с помощью метода JS или Jquery .post()
для вашего серверного PHP, чтобы данные можно было сохранить в БД
Есть примеры, подобные этому: https://datatables.net/forums/discussion/42290/getting-the-checked-rows-in-datatables которые описывают, как из таблиц данных вы можете получить проверенную строку и работать с ней. В документации по таблицам данных также есть множество примеров.
Ответ №2:
Я не вижу никакого тега формы.
<form action="{{route ('route_name')}}" method="route_method">
...
</form>
Также вам нужен @csrf для методов post,put,….
Комментарии:
1. это настоящий ответ? или это больше похоже на комментарий? Пожалуйста, используйте комментарии, чтобы прояснить ситуацию, а затем предложите реальные полезные ответы.
2. @Рон, это ответ. Какой из них проще? Просто добавьте тег формы или напишите строки дополнительного кода в js???