A. Create.jsx
import Navbar from "@/Layouts/Navbar"; import { Head, Link, router } from "@inertiajs/react"; import React from "react"; import { useState } from 'react' function Create({errors}) { const [values, setValues] = useState({ first_name: "", last_name: "", email: "", }) function handleChange(e) { const key = e.target.id; const value = e.target.value setValues(values => ({ ...values, [key]: value, })) } function handleSubmit(e) { e.preventDefault() router.post("form-submit", values) } return ( <div> <Navbar /> <form onSubmit={handleSubmit}><br/><br/> <label htmlFor="first_name">First name:</label> <input className="form-control" id="first_name" value={values.first_name} onChange={handleChange} /><br/> {errors.first_name && <small>{errors.first_name}</small>}<br/> <label htmlFor="last_name">Last name:</label> <input className="form-control" id="last_name" value={values.last_name} onChange={handleChange} /><br/> {errors.last_name && <small>{errors.last_name}</small>}<br/> <label htmlFor="email">Email:</label> <input className="form-control" id="email" value={values.email} onChange={handleChange} /><br/> {errors.email && <small>{errors.email}</small>}<br/> <buttontype="submit"className="btn btn-primary" >Submit</button> </form> </div> ) } export default Create;
B. web.php
Route::post('/form-submit', [HomeController::class, 'form_submit'])->name('form-submit');
C. HomeController.php
public function form_submit(Request $req){ $this->validate($req, [ 'first_name' => ['required'], 'last_name' => ['required'], 'email' => ['required'], ]); $query = DB::table('test')->insert([ 'name' => $req->first_name. ' '.$req->last_name, 'email' => $req->email ]); return Inertia::render('Create'); }