現在、データシートのデータをデータベースに保存しようとしています。私は、datatables内のフォームフィールドに取り組んでいて、入力値を変更してデータベースに戻したいと思っています。理想的には、IDが既に存在しない場合はデータベース内の別のテーブルに保存することができますが、現在は変更を加えて元のテーブルに戻すことのみを試みています。 私はlaravel 5.4とdatatablesプラグインを使用しています。 私はlaracast、スタックオーバーフロー、およびデータテーブルでさまざまな投稿を探してきました。私は自分のデータを自分のコントローラーに保存し、オブジェクトを返すようにしました。私はモデルの保護された$キャストを変更して、devのツールにどのような値が入っているのかを確認しようとしました。私はまた、私のコントローラでは無駄な複数の保存メソッドを試してみました。Laravel 5.4とDatatables - Ajax - データの保存/送信 - サーバー側
ルート:
Route::get('/plunker', ['uses'=>'[email protected]']);
Route::get('/plunker/ttotgetposts', ['as'=>'plunker.ttotgetposts','uses'=>'[email protected]']);
Route::post('/plunker', '[email protected]')->name('saveOrUpdate');
モデル:
レスポンスとコードは以下を参照してくださいビュー:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Save test</title>
<link rel="stylesheet" href="/css/bootstrap-3.min.css">
<link rel="stylesheet" type="text/css" href="/css/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="/css/led.css">
<link rel="stylesheet" type="text/css" href="/css/jquery-ui.structure.min.css">
<link rel="stylesheet" type="text/css" href="/css/jquery-ui.theme.min.css">
<link rel="stylesheet" type="text/css" href="/css/dataTables.jqueryui.min.css">
<link rel="stylesheet" type="text/css" href="/css/ssstyle.css">
<script src="/js/jquery-1.12.4.js"></script>
<script src="/js/jquery.dataTables.min.js"></script>
<script src="/js/dataTables.jqueryui.min.js"></script>
<script src="/js/jquery-ui.min.js"></script>
<script src="/js/jquery-ui.accordion.multiple.js"></script>
<script src="/js/demo.js"></script>
</head>
<body>
<h3>ttot Save Test</h3>
<div>
<div class="containershe">
<table id="books" class="ttotsave" style="width:100%">
<thead>
<tr><th>ID</th>
<th>Name</th>
<th>Inducted</th>
{{--<th>Edit</th>--}}
{{--<th>Delete</th>--}}
</tr>
</thead>
</table>
</div>
<button data-token="{{ csrf_token() }}" type="submit">Submit</button>
<script type="text/javascript">
$(document).ready(function() {
oTable = $('#books').DataTable({
"processing": true,
"serverSide": true,
"scrollY": "500px",
"scrollX": true,
"scrollCollapse": true,
"paging": true,
"ajax": "{{ route('tabletotable.ttotgetposts') }}",
"dataSrc" : "",
"columns": [
{'data': 'id', render: function (data, type, row)
{
if (data) {
var id = $('<div />').text(data).html();
}
else {
var id = '';
}
return '<input type="text" id="id" name="id[' + $('<div />').text(row.id).html() + ']" value=" ' + id + ' ">';
} },
{'data': 'book_name', render: function (data, type, row)
{
if (data) {
var name = $('<div />').text(data).html();
}
else {
var name = '';
}
return '<input type="text" id="name" name="name[' + $('<div />').text(row.id).html() + ']" value=" ' + name + ' ">';
} },
{'data': 'date_inducted', render: function (data, type, row)
{
if (data) {
var date = $('<div />').text(data).html();
}
else {
var date = '';
}
return '<input type="text" id="inducted" name="inducted[' + $('<div />').text(row.id).html() + ']" value=" ' + date + ' ">';
} },
]
});
$('button').click(function() {
var data = oTable.$('input, select').serialize();
$.ajax({
headers: {
'X-CSRF-TOKEN': $('button').data('token'),
},
type: "POST",
url: 'tabletotable',
dataSrc : 'data',
dataType: 'JSON',
data: data,
async: 'false',
success: function()
{
alert('saved');
console.log('my message' + response + data);
}
});
});
});
</script>
</div>
</body>
</html>
コントローラー:
<?php
namespace App\Http\Controllers;
use App\Books;
use App\Inducted;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Http\Request;
use DataTables;
use DB;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function plunker()
{
return view('plunker');
}
public function ttotGetPosts()
{
$users = DB::table('books')->select('*');
return DataTables::of($users)
->make(true);
}
public function saveOrUpdate(Request $request){
dd($request->all());
DB::table('books')->where('id','=', $request->get('id'))
->update(['book_name' => $request->get('name'),
'date_inducted' => $request->get('inducted')]);
return redirect('/index')->with('status','Successfully updated !');
}
}
あなたはちょうど私が知っている必要とするより多くの情報が
種類が
くそ.......あなたの血の伝説。私はこれを数日間ずっと磨いてきました:)私は4ヶ月間しか開発しておらず、まだ物事の周りに頭を浮かべています。ありがとうヒープ – Jason