所以我正在使用modal做这个crud的事情,我想我能够做到,只是表中的数据没有显示在modal的文本框中。我能够更新我的表,只是我想要在模式中显示所选行的数据。
所以它看起来是这样的:enter image description here
这是我的视图:表部分( view /crud.blade.php)
<div>
<table class="table" id="dataTable">
<thead>
<tr>
<th scope="col">id</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Course</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
@foreach ($cruds as $crud)
<tr>
<td>{{$crud->id}}</td>
<td>{{$crud->firstName}}</td>
<td>{{$crud->lastName}}</td>
<td>{{$crud->course}}</td>
<td>
<a href="#" class= "btn btn-warning edit_btn"> Edit </a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@else
<p> No Post found </p>
@endif这是我的视图:模式部分( view /crud.blade.php)
<div class="modal fade" id="editModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">EDIT DATA</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form action="/crud" method="POST" id = "editForm">
{{csrf_field()}}
{{method_field('PUT')}}
<div class="modal-body">
<input type="hidden" class="form-control" id="crud_id">
<div class="form-group">
<label>First Name</label>
<input type="text" class="form-control" name="firstName" id="firstName">
</div>
<div class="form-group">
<label>Last Name</label>
<input type="text" class="form-control" name="lastName" id="lastName">
</div>
<div class="form-group">
<label>Course</label>
<input type="text" class="form-control" name="course" id="course">
</div>
</div>
<div class = "modal-footer">
{{Form::submit('Update', ['class' => 'btn btn-primary'])}}
</div>
</form>
</div>
</div>
</div>这是我的js (public/js/modal.js)
$(document).ready(function(){
var table = $('#dataTable').DataTable();
//display Edit Modal
$('.edit_btn').on('click', function(){
$tr = $(this).closest('tr');
var data = $tr.children("td").map(function(){
return $(this).text();
}).get();
console.log(data);
$('#firstName').val(data[1]);
$('#lastName').val(data[2]);
$('#course').val(data[3]);
$('#editForm').attr('action', '/crud/' + data[0]);
$('#editModal').modal('show');
})
});下面是我的控制器:更新部分
public function update(Request $request, $id)
{
//
$this->validate($request, [
'firstName' =>'required',
'lastName' => 'required',
'course' => 'required'
]);
//Adding Data
$crud = Crud::find($id);
$crud->firstName = $request->input('firstName');
$crud->lastName = $request->input('lastName');
$crud->course = $request->input('course');
$crud->save();
return redirect('/crud');
}这是我的路线
Route::resource('crud', 'CrudController');以下是控制台中显示的内容:
(5) ["9", "abcde", "abcde", "abcde", "↵ Edit … Delete ↵ "]
0: "9"
1: "abcde"
2: "abcde"
3: "abcde"
4: "↵ Edit ↵ Delete ↵ "
length: 5
__proto__: Array(0)发布于 2020-10-06 19:16:07
你能试试这个吗?
$(document).ready(function(){
var table = $('#dataTable').DataTable();
//display Edit Modal
$('.edit_btn').on('click', function(){
var id = $(this).parent().prev().prev().prev().prev().text();
var firstName = $(this).parent().prev().prev().prev().text();
var lastName = $(this).parent().prev().prev().text();
var course = $(this).parent().prev().text();
$('#firstName').val(firstName);
$('#lastName').val(lastName);
$('#course').val(course);
$('#editForm').attr('action', '/crud/' + id);
$('#editModal').modal('show');
})
});这可能是因为当您关闭它并再次单击其他记录时,您将需要重置模式表单。如果它是一个bootstrap模式,你可以在关闭它的时候重置它,如下所示:
// Clears modal form when is closed
$('#kt_modal_org').on('hidden.bs.modal', function(e) {
$(this).find('#org-form')[0].reset();
});https://stackoverflow.com/questions/64198399
复制相似问题