ساخت فرم با کدایگنیتر

 

مراحل ساخت یک فرم و اتصال آن به دیتابیس در کدایگنایتر

 

این آموزش با پیش فرض اینکه با قالب های HTML و ساختار CSS آشنایی دارید نوشته شده است.

 

1- مهم : ساختار فرم ها و گردش اطلاعات در معماری MVC فریمورک CI به این صورت است :

view --> controller --> model --> view

1- در واقع ابتدا در مرحله اول فرم به کاربر نمایش داده شده تا اطلاعات را وارد کند.

  • اعتبار سنجی های جی کوئری
  • ارسال آژاکس اطلاعات
  • طراحی و ظاهر سازی فرم
  • تعیین نام و تعداد فیلدها

2- سپس کنترلر اعتبار سنجی و تصفیه اطلاعات را انجام داده و آنرا برای ثبت در دیتابیس به مدل ارسال می کند.

  • اعتبار سنجی سمت سرور در این قسمت انجام میشود.
  • بررسی تعداد کاراکتر، نوع کاراکتر ورودی، انواع مختلف داده مانند ایمیل، آی پی و ...
  • بررسی الزامی بودن فیلد
  • بازگرداندن خطاهای فرم ثبت شده به صفحه اصلی فرم
  • ارسال اطلاعات برای تایید به مدل

3- مدل دیتا را در دیتابیس ثبت کرده و گزارش عملیات را ارایه می کند.

  • ثبت اطلاعات در دیتابیس
  • هدایت کاربر به صفحه موفقیت آمیز بودن یا نبودن فرم

4- با بازگشت به صفحه قبل یا نمایش یک صفحه جدید، نتیجه عملیات نمایش داده میشود.

 

نمونه کار :
 

View (users/register.php) :

<?php

echo validation_errors('<div class="row">', '</div>');  

echo form_open_multipart('forms/register_user', 'class="form-horizontal" id="user_register"');

echo form_input(array( 'class' => 'form-control', 'name' => 'user[name]', 'id' => 'input_name', 'placeholder' => 'نام', 'autocomplete' => 'off', 'type' => 'text', 'required'=>'required', 'value'=>set_value('user[name]')));

echo form_submit('submit', 'ثبت و ذخیره', array('class' =>'btn btn-success pull-left'));

echo form_close()

?>

 

Controller (controller/Forms.php) :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class Forms extends CI_Controller {
    public function __construct()
    {
        parent::__construct();            
        $this->load->helper(array('form', 'url'));       
        $this->load->library('form_validation');
    }
     
    public function register_user()
    {      
        $this->form_validation->set_rules('user[name]', 'نام', 'required', array('required' => 'لطفا %s. را تکمیل فرمایید.'));
        if ($this->form_validation->run() === FALSE)
        {
            $this->load->view('admin/users/register', $data);
        }
        else
        {        
            $this->load->model('Form_model');
            $this->Form_model->register_user();
            $this->load->view('users/form_success');
        }               
    }

 

 

Model (models/Form_model):

<?php

class Form_model extends CI_Model
{
    public function register_user()
    {    
        $data = array(
            'name' => $this->input->post('user[name]')        
        );       
        return $this->db->insert('users', $data);
    }   
}