일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 교회전산
- 버츄어머신
- 디바이스마트
- 전자결재
- 명부
- 교적부
- 단체앱
- 부품정보
- composer #codeigniter #codeigniter4
- 전자부품
- 온라인유통
- 전자부품유통
- 단체홈페이지
- 쇼핑몰
- 회원명부
- 웹erp
- digikey
- 회원관리
- VirtualBox
- 디지키
- 웹교적부
- 교회앱
- 홈페이지제작
- 교회홈페이지
- 웹명부
- 보안시스템
- 사내정보
- 전자부품전
- 자재정보
- 회원앱
Archives
- Today
- Total
미디어 온 연구실
예제3. CodeIgniter 4 입력 폼2 본문
1. 데이터베이스 및 테이블 생성
다음 SQL 쿼리를 실행하여 데이터베이스와 테이블을 생성합니다.
CREATE DATABASE demo;
CREATE TABLE `users` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`email` varchar(50) NOT NULL,
`phone` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 모델 및 컨트롤러 생성
FormModel.php 파일을 생성하므로 app/Models/ 디렉토리로 이동하여 FormModel.php 파일을 생성합니다. 그런 다음 FormModel.php 파일에 다음 코드를 추가합니다.
<?php
namespace App\Models;
use CodeIgniter\Model;
class FormModel extends Model
{
protected $table = 'users';
protected $primaryKey = 'id';
protected $allowedFields = ['name', 'email', 'phone'];
}
FormController.php 파일을 생성합니다. 따라서 app/Controllers 디렉토리를 방문하여 FormController.php를 생성합니다. 그런 다음 여기에 다음 코드를 추가합니다.
<?php
namespace App\Controllers;
use App\Models\FormModel;
use CodeIgniter\Controller;
class FormController extends Controller
{
public function create() {
return view('contact_form');
}
public function formValidation() {
helper(['form', 'url']);
$input = $this->validate([
'name' => 'required|min_length[3]',
'email' => 'required|valid_email',
'phone' => 'required|numeric|max_length[10]'
]);
$formModel = new FormModel();
if (!$input) {
echo view('contact_form', [
'validation' => $this->validator
]);
} else {
$formModel->save([
'name' => $this->request->getVar('name'),
'email' => $this->request->getVar('email'),
'phone' => $this->request->getVar('phone'),
]);
return $this->response->redirect(site_url('/submit-form'));
}
}
}
index() 함수는 연락처 양식 템플릿을 보기로 렌더링합니다.
contactForm() 메서드는 유효성 검사 형식을 처리하고 다양한 변수를 포함합니다.
3. 뷰어 생성
contact_form.php 보기 파일을 생성하므로 application/views/ 디렉토리로 이동하여 contact_form.php 파일을 생성합니다. 그런 다음 contact_form.php 파일에 다음 HTML을 추가합니다.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Codeigniter 4 Form Validation Example</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<style>
.container {
max-width: 550px;
}
</style>
</head>
<body>
<div class="container mt-5">
<?php $validation = \Config\Services::validation(); ?>
<form method="post" action="<?php echo base_url('/submit-form') ?>">
<div class="form-group">
<label>Name</label>
<input type="text" name="name" class="form-control">
<!-- Error -->
<?php if($validation->getError('name')) {?>
<div class='alert alert-danger mt-2'>
<?= $error = $validation->getError('name'); ?>
</div>
<?php }?>
</div>
<div class="form-group">
<label>Email</label>
<input type="text" name="email" class="form-control">
<!-- Error -->
<?php if($validation->getError('email')) {?>
<div class='alert alert-danger mt-2'>
<?= $error = $validation->getError('email'); ?>
</div>
<?php }?>
</div>
<div class="form-group">
<label>Phone</label>
<input type="text" name="phone" class="form-control">
<!-- Error -->
<?php if($validation->getError('phone')) {?>
<div class='alert alert-danger mt-2'>
<?= $error = $validation->getError('phone'); ?>
</div>
<?php }?>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block">Submit</button>
</div>
</form>
</div>
</body>
</html>
다음 줄은 웹 페이지에 오류 메시지를 표시합니다.
<?php if($validation->getError('email')) {?>
<div class='alert alert-danger mt-2'>
<?= $error = $validation->getError('email'); ?>
</div>
<?php }?>
4. 경로 설정하기
경로를 정의하려면 app/Config/ 디렉토리로 이동하여 Routes.php 파일을 엽니다. 그런 다음 다음 경로를 추가하십시오.
경로는 연락처 양식을 표시하고 성공적인 양식 제출 시 데이터베이스의 데이터를 제출합니다.
$routes->get('contact-form', 'FormController::create');
$routes->post('submit-form', 'FormController::formValidation');
경로는 연락처 양식을 표시하고 성공적인 양식 제출 시 데이터베이스의 데이터를 제출합니다.
'예제로 배우는 코드이그나이터4' 카테고리의 다른 글
CI4 컴포저(Composer) 설치 (1) | 2024.04.26 |
---|---|
예제4. Ajax를 사용한 국가 주 그리고 도시를 선택하는 드롭다운구현 (0) | 2021.07.11 |
예제2. CodeIgniter 4 부트스트랩 모달이 포함 된 CRUD (0) | 2021.07.07 |
예제1. CodeIgniter 4 입력 폼 (1) | 2021.07.06 |
Codeigniter 4의 Controller, Model, View 만들기 예제 (0) | 2021.07.05 |
Comments