问题描述
我需要您的帮助,如何使用ajax插入输入数据?旁注我正在使用jquery.serializeJSON包从用户获取json对象输入。提交时它将显示错误419。这是下面的HTML代码
<form id="myform">
@csrf
<input type="text" name="name" value="Jake Zyrus">
<input type="text" name="description[name]" value="John Smith"/>
<input type="text" name="description[job]" value="Legendary Pirate"/>
<input type="text" name="description[car]" value="Delorean"/>
<button type="submit" >Add</button>
</form>
<script type="text/javascript">
$(document).ready(function(){
var employee = $('#myform').serializeJSON();
var employees = JSON.stringify(employee);
$('#myform').submit(function(){
$.ajax({
type: "POST",url: "/insert",data: employees,success: function(response){
alert("Data Save");
},error: function(error){
alert("Didnt Save");
}
});
});
});
</script>
这是我的控制器文件
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\job;
class JobController extends Controller
{
public function create(Request $request){
$jobs = new job;
$jobs->name = $request->input('name');
$jobs->description[] = $request->input('description');
$jobs->save();
return redirect('home');
}
}
最后这是Model App文件
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class job extends Model
{
//
protected $table = 'jobs';
protected $casts = [
'description' => 'array'
];
}
提前感谢您的回复。真的很感激。
解决方法
由于您使用的是ajax请求来保存数据,因此可以直接像$request->name
那样访问序列化的表单数据。