如何使用带有jquery.serializeJSON包的ajax在Laravel中将输入插入数据库?

问题描述

我需要您的帮助,如何使用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那样访问序列化的表单数据。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...