how can i solve this problem, i'm working with package yajra but i don't know where i have problem so please help to solve it and thank you there is my controller and view
<?php
namespace App\Http\Controllers;
use App\Cour;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
//use Validator;
class CourController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
if(request()->ajax())
{
return datatables()->of(Cour::latest()->get())
->addColumn('action', function($data){
$button = '<button type="button" name="edit" id="'.$data->id.'" class="edit btn btn-primary btn-sm">Edit</button>';
$button .= ' ';
$button .= '<button type="button" name="delete" id="'.$data->id.'" class="delete btn btn-danger btn-sm">Delete</button>';
return $button;
})
->rawColumns(['action'])
->make(true);
}
return view('cour');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$rules = array(
'prof' => 'required',
'module' => 'required',
'chapitre' => 'required',
'titre' => 'required',
'description' => 'required',
'file' => 'required|file|max:5000|mimes:pdf,docx,doc',
);
$error = Validator::make($request->all(), $rules);
if($error->fails())
{
return response()->json(['errors' => $error->errors()->all()]);
}
$file = $request->file('file');
$new_name = rand() . '.' . $file->getClientOriginalExtension();
$file->move(public_path('images'), $new_name);
$form_data = array(
'prof' => $request->prof,
'module' => $request->module,
'chapitre' => $request->chapitre,
'titre' => $request->titre,
'description' => $request->description,
'file' => $new_name
);
Cour::create($form_data);
return response()->json(['success' => 'Data Added successfully.']);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
if(request()->ajax())
{
$data = Cour::findOrFail($id);
return response()->json(['data' => $data]);
}
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request)
{
$file_name = $request->hidden_file;
$file = $request->file('file');
if($file != '')
{
$rules = array(
'prof' => 'required',
'module' => 'required',
'chapitre' => 'required',
'titre' => 'required',
'description' => 'required',
'file' => 'required|file|mimes:pdf,docx,doc|max:5000',
);
$error = Validator::make($request->all(), $rules);
if($error->fails())
{
return response()->json(['errors' => $error->errors()->all()]);
}
$file_name = rand() . '.' . $file->getClientOriginalExtension();
$file->move(public_path('images'), $file_name);
}
else
{
$rules = array(
'prof' => 'required',
'module' => 'required',
'chapitre' => 'required',
'titre' => 'required',
'description' => 'required',
);
$error = Validator::make($request->all(), $rules);
if($error->fails())
{
return response()->json(['errors' => $error->errors()->all()]);
}
}
$form_data = array(
'prof' => $request->prof,
'module' => $request->module,
'chapitre' => $request->chapitre,
'titre' => $request->titre,
'description' => $request->description,
'file' => $file_name
);
Cour::whereId($request->hidden_id)->update($form_data);
return response()->json(['success' => 'Data is successfully updated']);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$data = Cour::findOrFail($id);
$data->delete();
}
public function download($file)
{
return response()->download('storage/images'.$file);
}
}
-
cour view
Laravel 5.8 - DataTables Server Side Processing using Ajax
Laravel 5.8 Ajax Crud Tutorial - Delete or Remove Data
Create Record
Id professeur module chapitre titre description Action
× Add cour @csrf
× Confirmation Are you sure you want to remove this data? OK Cancel $(document).ready(function(){ $('#user_table').DataTable({ processing: true, serverSide: true, ajax:{ url: "", }, columns:[ { data: 'file', name: 'file', render: function(data, type, full, meta){ return ""; }, orderable: false }, { data: 'prof', name: 'prof' }, { data: 'module', name: 'module' }, { data: 'chapitre', name: 'chapitre' }, { data: 'titre', name: 'titre' }, { data: 'description', name: 'description' }, { data: 'action', name: 'action', orderable: false } ] }); $('#create_record').click(function(){ $('.modal-title').text("Ajouter un coure"); $('#action_button').val("Add"); $('#action').val("Add"); $('#formModal').modal('show'); }); $('#sample_form').on('submit', function(event){ event.preventDefault(); if($('#action').val() == 'Add') { $.ajax({ url:"", method:"POST", data: new FormData(this), contentType: false, cache:false, processData: false, dataType:"json", success:function(data) { var html = ''; if(data.errors) { html = ''; for(var count = 0; count ' + data.errors[count] + ''; } html += ''; } if(data.success) { html = '' + data.success + ''; $('#sample_form')[0].reset(); $('#user_table').DataTable().ajax.reload(); } $('#form_result').html(html); } }) } if($('#action').val() == "Edit") { $.ajax({ url:"", method:"POST", data:new FormData(this), contentType: false, cache: false, processData: false, dataType:"json", success:function(data) { var html = ''; if(data.errors) { html = ''; for(var count = 0; count ' + data.errors[count] + ''; } html += ''; } if(data.success) { html = '' + data.success + ''; $('#sample_form')[0].reset(); $('#store_image').html(''); $('#user_table').DataTable().ajax.reload(); } $('#form_result').html(html); } }); } }); $(document).on('click', '.edit', function(){ var id = $(this).attr('id'); $('#form_result').html(''); $.ajax({ url:"/cour/"+id+"/edit", dataType:"json", success:function(html){ $('#prof').val(html.data.prof); $('#module').val(html.data.module); $('#chapitre').val(html.data.chapitre); $('#titre').val(html.data.titre); $('#description').val(html.data.description); $('#store_file').html(""); $('#store_file').append(""); $('#hidden_id').val(html.data.id); $('.modal-title').text("Edit New Record"); $('#action_button').val("Edit"); $('#action').val("Edit"); $('#formModal').modal('show'); } }) }); var user_id; $(document).on('click', '.delete', function(){ user_id = $(this).attr('id'); $('#confirmModal').modal('show'); }); $('#ok_button').click(function(){ $.ajax({ url:"cour/destroy/"+user_id, beforeSend:function(){ $('#ok_button').text('Deleting...'); }, success:function(data) { setTimeout(function(){ $('#confirmModal').modal('hide'); $('#user_table').DataTable().ajax.reload(); }, 2000); } }) }); });<div class="form-group"> <label class="col-md-4 text-right">Enseignant:</label> <div class="col-md-8"> <input type="text" name="prof" class="form-control input-lg" placeholder="le nom du prof" /> </div> </div> <div class="form-group"> <label class="col-md-4 text-right">Module:</label> <div class="col-md-8"> <input type="text" name="module" class="form-control input-lg" placeholder="module"/> </div> </div> <div class="form-group"> <label class="col-md-4 text-right">Chapitre:</label> <div class="col-md-8"> <input type="text" name="chapitre" class="form-control input-lg" placeholder="chapitre"/> </div> </div> <div class="form-group"> <label class="col-md-4 text-right">Titre:</label> <div class="col-md-8"> <input type="text" name="titre" class="form-control input-lg" placeholder="titre"/> </div> </div> <div class="form-group"> <label class="col-md-4 text-right">Description:</label> <div class="col-md-8"> <input type="text" name="description" class="form-control input-lg" placeholder="description"/> </div> </div> <div class="form-group"> <label class="col-md-4 text-right">choisir le fichier</label> <div class="col-md-8"> <input type="file" name="file" id="file" /> <span id="store_image"></span> </div> </div> <div class="form-group" align="center"> <input type="hidden" name="action" id="action" /> <input type="hidden" name="hidden_id" id="hidden_id" /> <input type="submit" name="action_button" id="action_button" class="btn btn-warning" value="Add" /> </div> </form> </div> </div> </div>
routes :
Route::resource('cour', 'CourController');
Route::post('cour/update', 'CourController@update')->name('cour.update');
Route::get('cour/destroy/{id}', 'CourController@destroy');
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire