Advertisement
asimryu

EditStudent.js

Dec 21st, 2021
831
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, {useState, useEffect} from 'react';
  2. import {Link, useHistory} from 'react-router-dom';
  3. import axios from 'axios';
  4. import swal from 'sweetalert';
  5.  
  6. function EditStudent(props) {
  7.  
  8.     const history = useHistory();
  9.     const [loading, setLoading] = useState(true);
  10.     const [studentInput, setStudent] = useState([]);
  11.     const [errorInput, setError] = useState([]);
  12.  
  13.     useEffect(() => {
  14.        
  15.         const student_id = props.match.params.id;
  16.         axios.get(`http://localhost:8000/api/edit-student/${student_id}`).then( res => {
  17.  
  18.             if(res.data.status === 200)
  19.             {
  20.                 setStudent(res.data.student);
  21.                 setLoading(false);
  22.             }
  23.             else if(res.data.status === 404)
  24.             {
  25.                 swal("Error",res.data.message,"error");
  26.                 history.push('/students');
  27.             }
  28.         });
  29.  
  30.     }, [history]);
  31.  
  32.     const handleInput = (e) => {
  33.         e.persist();
  34.         setStudent({...studentInput, [e.target.name]: e.target.value });
  35.     }
  36.  
  37.     const updateStudent = (e) => {
  38.         e.preventDefault();
  39.        
  40.         const student_id = props.match.params.id;
  41.         // const data = studentInput;
  42.         const data = {
  43.             name: studentInput.name,
  44.             course: studentInput.course,
  45.             email: studentInput.email,
  46.             phone: studentInput.phone,
  47.         }
  48.  
  49.         axios.put(`http://localhost:8000/api/update-student/${student_id}`, data).then(res=>{
  50.             if(res.data.status === 200)
  51.             {
  52.                 swal("Success",res.data.message,"success");
  53.                 setError([]);
  54.                 history.push('/students');
  55.             }
  56.             else if(res.data.status === 422)
  57.             {
  58.                 swal("All fields are mandetory","","error");
  59.                 setError(res.data.validationErrors);
  60.             }
  61.             else if(res.data.status === 404)
  62.             {
  63.                 swal("Error",res.data.message,"error");
  64.                 history.push('/students');
  65.             }
  66.         });
  67.     }
  68.  
  69.     if(loading)
  70.     {
  71.         return <h4>Loading Edit Student Data...</h4>
  72.     }
  73.    
  74.     return (
  75.         <div>
  76.             <div className="container">
  77.                 <div className="row justify-content-center">
  78.                     <div className="col-md-6">
  79.                         <div className="card">
  80.                             <div className="card-header">
  81.                                 <h4>Edit Students
  82.                                     <Link to={'/students'} className="btn btn-danger btn-sm float-end"> BACK</Link>
  83.                                 </h4>
  84.                             </div>
  85.                             <div className="card-body">
  86.                                
  87.                                 <form onSubmit={updateStudent} >
  88.                                     <div className="form-group mb-3">
  89.                                         <label>Student Name</label>
  90.                                         <input type="text" name="name" onChange={handleInput} value={studentInput.name} className="form-control" />
  91.                                         <span className="text-danger">{errorInput.name}</span>
  92.                                     </div>
  93.                                     <div className="form-group mb-3">
  94.                                         <label>Student Course</label>
  95.                                         <input type="text" name="course" onChange={handleInput} value={studentInput.course}  className="form-control" />
  96.                                         <span className="text-danger">{errorInput.course}</span>
  97.                                     </div>
  98.                                     <div className="form-group mb-3">
  99.                                         <label>Student Email</label>
  100.                                         <input type="text" name="email" onChange={handleInput} value={studentInput.email}  className="form-control" />
  101.                                         <span className="text-danger">{errorInput.email}</span>
  102.                                     </div>
  103.                                     <div className="form-group mb-3">
  104.                                         <label>Student Phone</label>
  105.                                         <input type="text" name="phone" onChange={handleInput} value={studentInput.phone}  className="form-control" />
  106.                                         <span className="text-danger">{errorInput.phone}</span>
  107.                                     </div>
  108.                                     <div className="form-group mb-3">
  109.                                         <button type="submit" id="updatebtn" className="btn btn-primary">Update Student</button>
  110.                                     </div>
  111.                                 </form>
  112.  
  113.                             </div>
  114.                         </div>
  115.                     </div>
  116.                 </div>
  117.             </div>
  118.         </div>
  119.     );
  120.  
  121. }
  122.  
  123. export default EditStudent;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement