Laravel – Inertia js update

Laravel – Inertia js update

A. Edit.jsx:

import Navbar from "@/Layouts/Navbar";
import { Head, Link, router } from "@inertiajs/react";
import React from "react";
import { useState } from 'react'

function Edit(props) {

    const {id, first_name, last_name, email, errors} = props;
    const [values, setValues] = useState({
        id : '1',
        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-update/1", 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"
     >Update</button>

    </form>

        </div>

    )

}

export default Edit;

 

B. web.php:

Route::post('/form-update/{id}', [HomeController::class, 'form_update'])->name('form-update');
B. HomeController.php:
    public function form_update(Request $req, $id){       

        $this->validate($req, [
            'first_name' => ['required'],
            'last_name' => ['required'],
            'email' => ['required'],
        ]);

        DB::table('test')->where('id', $id)->update([
            'name' => $req->first_name. ' '.$req->last_name,
            'email' => $req->email
            ]);

         return redirect('create');

    }

 

 

 

 

Leave a Reply