Codeigniter: Formularele – Lectia 1: Realizarea formularelor. Cum faci un formular in Codeigniter

Formularele si securitatea… acestea au fost motivele pentru care am decis sa apelez la un framework. Si daca Codeigniter mi s-a parut cel mai usor de invatat, am decis sa folosesc acest framework.

Asadar, intai ar trebui sa realizam formularul pentru preluarea de date de la vizitatorii site-ului nostru.

Realizarea formularului o poti face foarte simplu intr-un view, scriind totul in html. Daca insa vrei sa te si bucuri de facilitatile framework-ului, te poti folosi de un helper: Form Helper.

OK. Hai sa incepem cu inceputul.

In primul rand ne trebuie un controller. Sa il numim “Formular“. Ca sa ne fie usor, pentru inceput tot ce vom face va fi sa chemam view-ul care contine formularul (linia 10):

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Formular extends CI_Controller
{
  public function index()
  {
    /* $this->load->helper('form'); daca doresti sa incarci helperul 'form' in acest controller... */
    $this->load->view('formular_view');
  }
}

Acum, ca am chemat view-ul hai sa il si facem. Dupa cum ti-am spus deja, pentru a-l face ai doua posibilitati: fie il faci de la cap la coada in html, fie te folosesti de helperul Form. Eu iti voi arata aici doar cum sa te folosesti de helperul Form. Daca nu vrei sa te folosesti de acest helper, poti sa treci direct la lectia urmatoare, unde vom interpreta informatiile transmise prin formular.

In primul rand, pentru a folosi helperul Form ai doua cai:

  1. incarci helperul in controller-ul care cheama view-ul punand linia $this->load->helper(‘form’); chiar inainte de chemarea view-ului.
  2. il incarci folosindu-te de autoloader. Autoloader-ul, pe care il gasesti in folderul config din application (autoload.php), este un fisier care iti permite sa iei decizii asupra resurselor framework-ului pe care le vrei incarcate automat. Astfel, daca stii ca vei avea formulare multe in aplicatia ta, cel mai bine ar fi sa incarci prin autoload helperul Form. Incarcarea acestuia se face prin adaugarea la cheia ‘helper’ a array-ului $autoload a elementului ‘form’.

Mai precis, linia din autoload.php ar trebui sa arate cam asa:

$autoload[‘helper’] = array(‘form’);

Bineinteles, nu este exclus sa ai mai multi helper-i incarcati acolo…

Odata ce ai hotarat asupra metodei de incarcare a helper-ului, mergem la partea de view. Astfel, in folder-ul views vom face un fisier formular_view.php, acelasi ca cel chemat de controller:

<!DOCTYPE HTML>
<html>
  <head>
   <title>Formular</title>
  </head>
  <body>
    <?php
    echo form_open('formular/trimite');
    echo form_label('Cum te numesti:','nume');
    echo '<br />';
    echo form_input('nume','Numele tau');
    echo '<br />';
    echo form_label('Adresa de email:','email');
    echo '<br />';
    echo form_input('email');
    echo '<br />';
    echo form_label('Adresa web:','siteweb');
    echo '<br />';
    echo form_input('siteweb');
    echo '<br />';
    echo form_label('Ce parere ai despre acest tutorial?','parere');
    echo '<br />';
    $optiuni = array('multumit'=>'Sunt multumit','nemultumit'=>'Sunt nemultumit');
    echo form_dropdown('parere',$optiuni,'nemultumit');
    echo '<br />';
    echo form_label('Comentarii:','comentariu');
    echo '<br />';
    echo form_textarea('comentariu');
    echo '<br />';
    echo form_submit('trimite','Trimite comentariul');
    echo form_close();
    ?>
  </body>
</html>

Deci lucram cu helperul ‘form’. Cand faci formulare, iti dai seama ca lucrezi cu acest helper prin simplul fapt ca orice element al formularului incepe cu “form_“.

Acum sa explicam ce am facut mai sus.

<form> si </form>

Daca te uiti la liniile 8 si 30 vei vedea form_open() si form_close(). Acestea afiseaza tagurile de deschidere si inchidere a formularului. La linia 8 am spus helper-ului Form sa realizeze tag-urile de deschidere a formularului, action-ul fiind trimiterea datelor catre metoda trimite() a clasei Formular.

<label></label>

Functiile form_label(), au doi parametri, primul reprezentand valoarea tag-ului label, iar al doilea reprezentand elementul pentru care exista acel label. Spre exemplu, am inceput cu labelul “Cum te numesti:” care este relationat la elementul de formular “nume”.

<input type=”text” />

form_input() este functia care introduce elementul input de tip text. Functia poate primi mai multi parametri. Primul parametru reprezinta atributul name, in timp ce al doilea reprezinta atributul value. Ai putea introduce si un al treilea element care sa contina orice alti parametri doresti. Spre exemplu: form_input(‘nume’,’Numele tau’,’class=”inputnume” style=”border:1px solid red”‘);. Daca doresti sa nu existe un value, dar in acelasi timp vrei sa adaugi al treilea parametru nu pui nimic intre ghilimelele care contin al doilea parametru.

<select></select> si <option></option>

La liniile 23-24 observa ce am facut. Mie mi-a trebuit sa fac un element de tip select avand doua optiuni. Pentru a realiza un element de tip select, trebuie sa te folosesti de functia form_dropdown(), oferind cel putin doi parametri: primul reprezentand numele elementului select, al doilea reprezentand optiunile. Al doilea parametru va fi un array. Iti recomand ca acest array sa nu il faci in view, ci in controller, dar pentru a-ti explica cum functioneaza helper-ul form, am considerat ca este bine sa ti-l pun cat mai aproape de elementul de formular la care se aplica. Array-ul are drept cheie name-ul optiunii, valoarea cheii respective fiind chiar valoarea optiunii. Dupa cum vezi, am pus si un al treilea parametru. Acesta este de fapt numele optiunii selectate ca default si anume “nemultumit”.

<textarea></textarea>

form_textarea() introduce un element de tip textarea, in timp ce form_submit() introduce butonul de trimitere a formularului.

Daca totul este facut cum trebuie, rezultatul ar trebui sa fie cam asa…

Citeste…

Bineinteles ca exista si elemente de formular pe care nu le-am acoperit aici. Daca vrei sa te informezi mai in amanunt, as dori sa te indrum catre manualul CodeIgniter, capitolul despre helperul form care este destul de usor de inteles.

In lectia urmatoare iti voi explica cum vom prelua toate informatiile din formular in controller si le vom valida.

Lasă un răspuns

Your email address will not be published. Required fields are marked *

No spam? * Time limit is exhausted. Please reload CAPTCHA.