TECHNICALSTUDY

The associate of technical study article for computer science students which could gain the knowledge about to technicals like Computer history, hard disk, printer,central processing unit etc. Technicalstudy also considered software engineering, operating system and some chunks of programming languages.

Email subscription

Enter your email address:

Delivered by FeedBurner

Friday, September 15, 2023

CodeIgniter-4 CURD With Image Progress Icon JQuery

View File form.php









Step1 - Create Model : UsersModel.php

<?php
namespace App\Models;
use CodeIgniter\Model;

class UsersModel extends Model{
protected $table ='users';
protected $primaryKey = 'id';
protected $allowedFields =['name','mobile','email','img_name','is_deleted','password'];
}


Step1 - Create View : form.php

<?= $this->include('header')?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<!-- ajaxForm -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.3.0/jquery.form.min.js" integrity="sha384-qlmct0AOBiA2VPZkMY3+2WqkHtIQ9lSdAsAn5RUJD/3vA5MKDgSGcdmIv4ycVxyn" crossorigin="anonymous"></script>
<!-- End ajaxForm -->
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script src="<?= base_url('assets/js/custom.js')?>"></script>
</head>
<body>
<div class="container mt-4">
<?php $validation = \Config\Services::validation(); ?>

<div class="col-lg-12">
<?php if (session()->getFlashdata('added') !== NULL) { ?>
<div class="col-lg-12 alert alert-success alert-dismissible fade show text-center mb-3" role="alert">
<i class="mdi mdi-check-all me-2"></i>
<?php echo session()->getFlashdata('added'); ?>
</div>
<?php } ?>
</div>

<div class="col-lg-12">
<?php if (session()->getFlashdata('exist') !== NULL) { ?>
<div class="col-lg-12 alert alert-warning alert-dismissible fade show text-center mb-3" role="alert">
<i class="mdi mdi-check-all me-2"></i>
<?php echo session()->getFlashdata('exist'); ?>
</div>
<?php } ?>
</div>


<div class="row">
<h2 class="text m-4 font-weight-bold">Registration Form</h2>

<div class="mt-5 mb-2" style="margin-left:530px">
<a class="btn btn-primary" href="<?php echo base_url('/')?>">Back</a>
</div>
</div>

<form action="<?php echo base_url('/savedata')?>" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="name" class="col-sm-2 col-form-label">name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="name" placeholder="name">
</div>
<?php if($validation->getError('name')) {?>
<div class='alert alert-danger mt-2 col-sm-10'>
<?= $error = $validation->getError('name'); ?>
</div>
<?php }?>
</div>
<div class="form-group ">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="email" id="email" placeholder="Email">
</div>
<?php if($validation->getError('email')){ ?>
<div class="alert alert-danger mt-2 col-sm-10">
<?= $validation->getError('email')?>
</div>
<?php }?>
</div>

<div class="form-group">
<label for="Phone" class="col-sm-2 col-form-label">Phone</label>
<div class="col-sm-10">
<input type="number" class="form-control" name="phone" id="phone" placeholder="Phone">
</div>
<?php if($validation->getError('phone')){?>
<div class="alert alert-danger mt-2 col-sm-10">
<?= $validation->getError('phone')?>
</div>
<?php }?>
</div>

<div class="form-group ">
<label for="password" class="col-sm-2 col-form-label">password</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="password" id="password" placeholder="Create password">
</div>
<?php if($validation->getError('password')){ ?>
<div class="alert alert-danger mt-2 col-sm-10">
<?= $validation->getError('password')?>
</div>
<?php }?>
</div>

<div class="form-group">
<label for="Phone" class="col-sm-2 col-form-label">Photo</label>
<div class="col-sm-10">
<input type="file" class="form-control" name="file" id="file" placeholder="File">
</div>
<div class="col-sm-10 m-2 progress d-none">
<div class="progress-bar bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 75%"></div>
</div>
<div class="col-sm-10 m-2 alert alert-success d-none">
<span></span>
</div>
<?php if($validation->getError('phone')){?>
<div class="alert alert-danger mt-2 col-sm-10">
<?= $validation->getError('file')?>
</div>
<?php }?>
</div>
<div class="form-group row">
<div class="col-sm-8 d-flex">
<input type="submit" class="btn btn-primary" id="submit" value="submit" placeholder="save">
</div>
</div>
</form>
</div>

<script>
$(document).ready(function(){
$('form').ajaxForm({
beforeSend:function(){
if($('#file').val() !='') {
$('.progress').removeClass('d-none');
var percentVal = "0%";
$('.bar').css('width',percentVal);
}
},
uploadProgress:function(event,position,total,percentagecomplete){
if($('#file').val() !='') {
var percentVal = percentagecomplete+"%";
$('.bar').css('width',percentVal);
}
},
complete:function(){
if($('#file').val() !='') {
$('.progress').removeClass('d-none');
console.log($('#file').val());
}
else{
console.log('Choose File');
}
}
});
});
</script>
</body>
</html>

Step2 - Routes.php


<?php

use CodeIgniter\Router\RouteCollection;

/**
* @var RouteCollection $routes
*/
$routes->get('/alldata', 'Home::index');
$routes->get('/','LoginController::ajaxform');

$routes->get('/form', 'Home::form');
$routes->post('/savedata','Home::savedata');
$routes->get('edit/(:any)','Home::Edit/$1');
$routes->post('update/(:any)','Home::updatedata/$1');
$routes->get('remove/(:any)','Home::remove/$1');


$routes->get('login','LoginController::ajaxform');
$routes->get('userdata','LoginController::userdata');
$routes->post('logindata','LoginController::logindata');
$routes->get('logout','LoginController::logout');



Step 4- create  Controller - Home.php 

1- create controller for registration form


<?php

namespace App\Controllers;
use App\Models\UsersModel;

class Home extends BaseController
{
public function index()
{
$model = new usersModel();
$data['records'] = $model->where('is_deleted',0)->findAll();
return view('welcome_message',$data);
}

public function form(){
$session = session();
if (null ===$session->get('is_loggedin')) {
return view('form');
}
if (null !==$session->get('is_loggedin')) {
return redirect()->to(base_url('userdata'));
}
}

public function savedata(){
$session = session();
$rules = [
'name' => 'required|max_length[30]',
'email' => 'required|max_length[254]|valid_email',
'phone' => 'required|numeric|max_length[10]',
'password' =>'required',
'file' => [
'uploaded[file]',
'mime_in[file,image/jpg,image/jpeg,image/png,image/gif]',
'max_size[file,4096]',
]
];

if(!$this->validate($rules)){
$data['validation'] = $this->validator;
return view('form', $data);
}else{
$email = $this->request->getPost('email');
$model = new usersModel();
$data = $model->where('is_deleted',0)->where('email',$email)->findAll();
if(!empty($data)){
session()->setFlashdata('exist','Email already exist.............');
return redirect()->to(base_url('/form'));

}else{
$name = $this->request->getPost('name');
$phone = $this->request->getPost('phone');
$password = $this->request->getPost('password');
$file = $this->request->getFile('file');
$fname = $file->getName();
$file->move("../public/assets/uploads");
chmod("../public/assets/uploads/".$fname,0777);
$data = array(
'name' => $name,
'email' => $email,
'mobile' => $phone,
'password' => $password,
'img_name' => $fname
);
$model = new UsersModel();
$save = $model->insert($data);
if(isset($save)){
session()->setFlashdata('added','Record added successfully. Please Login.....');
return redirect()->to(base_url('/form'));
}
}

}
}


public function Edit($id=null){
$model = new usersModel();

$data['data'] = $model->where('id',$id)->where('is_deleted',0)->findAll()[0];
return view('editform',$data);
}

public function updatedata($id=null){
$session = session();
$model = new usersModel();
$rules = [
'name' => 'required|max_length[30]',
'email' => 'required|max_length[254]|valid_email',
'phone' => 'required|numeric|max_length[10]',
'password' => 'required',
'file' => [
'uploaded[file]',
'mime_in[file,image/jpg,image/jpeg,image/png,image/gif]',
'max_size[file,4096]',
]
];
if(!$this->validate($rules)){
$data['validation'] = $this->validator;
$model = new usersModel();
$data['data'] = $model->where('id',$id)->where('is_deleted',0)->findAll()[0];
return view('editform', $data);
}else{

$model = new usersModel();
$email = $this->request->getPost('email');
$data = $model->where('id !=',$id)->where('is_deleted',0)->where('email',$email)->findAll()[0];
if(!empty($data)){
session()->setFlashdata('exist','Email already exist.............');
return redirect()->to(base_url('/edit/'.$id));
}else{
$name = $this->request->getPost('name');
$phone = $this->request->getPost('phone');
$password = $this->request->getPost('password');
$file = $this->request->getFile('file');
$filename = $file->getName($file);
$file->move("../public/assets/uploads");
chmod('../public/assets/uploads/'.$filename,0777);
$data = array(
'id' => $id,
'name' => $name,
'email' => $email,
'mobile' => $phone,
'password' => $password,
'img_name' => $filename
);
$resonse = $model->where('is_deleted',0)->update($id,$data);
if($resonse){
session()->setFlashdata('update','Record updated successfully..!');
return redirect()->to(base_url('edit/'.$id));
}else{
session()->setFlashdata('missing','Record is Missing..!');
return redirect()->to(base_url('edit/'.$id));
}
}
}
}

public function remove($id=null){

$data = array(
'id' => $id,
'is_deleted' => 1
);

$model = new usersModel();
$resonse = $model->where('is_deleted',0)->update($id,$data);

if($resonse){
session()->setFlashdata('deleted','Record Deleted successfully..!');
return redirect()->to(base_url('/'));
}
}







}




Step 4- Helper - create custom_helper.php 

1- create helper for login form.

2- class helper in side controller or views using load helper by helper('custom');


<?php
use App\Models\UsersModel;
function isLogged($email,$password){
$model = new UsersModel();
$data = $model->where('email',$email)->where('password',$password)->find()[0];
if(isset($data)){
return [
'id' => $data['id'],
'email' => $data['email'],
'is_loggedin' => true
];
}
}

?>


Step 4- Create Controller for Logins - create LoginController.php

<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\UsersModel;
class LoginController extends BaseController
{
public function __construct(){
helper(['custom']);
}

public function userdata(){
$session = session();
if (null !==$session->get('is_loggedin')) {
$model = new usersModel();
$data['records'] = $model->where('is_deleted',0)->where('id',$session->get('id'))->findAll()[0];
return view('dashboard',$data);
}{
return redirect()->to('/login');
}
}
public function ajaxform(){
$session = session();
if (null ===$session->get('is_loggedin')) {
return view('loginform');
}
if (null !==$session->get('is_loggedin')) {
return redirect()->to('userdata');
}
}

public function logindata(){
$session = session();
$rules = [
'email' => 'required|max_length[254]|valid_email',
'password' => 'required',
];

if(!$this->validate($rules)){
$data['validation'] = $this->validator;
return view('loginform', $data);
}else{
$email = $this->request->getPost('email');
$password = $this->request->getPost('password');
$data = isLogged($email,$password);
$session->set($data);
if(isset($data) && !empty($data)){
return redirect()->to(base_url('userdata'));
}else{
return redirect()->to(base_url('/login'));
}
}
}

public function logout(){
$session = session();
if(null !== $session->get('is_loggedin')){
$session->destroy();
return redirect()->to(base_url('login'));
}

}}





No comments:

Post a Comment

Adbox