Przykładowy formularz

W tym warsztacie sporządzimy działający formularz. Formularz tworzymy w widoku. Dla przykładu ten nazwiemy form.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<?PHP
echo form_open('formularz/submit');
echo form_hidden('czas', time());
echo '<B>Login</B> ';
echo form_input(array('size' => 30, 'name' => 'login'));
echo '<BR /><B>Hasło</B> ';
echo form_password(array('size' => 30, 'name' => 'password'));
echo '<BR /><B>Płeć</B> ';
echo form_dropdown('plec', array('on' => 'On', 'ona' => 'Ona'));
echo '<BR /><B>Zainteresowania:</B> PHP';
echo form_checkbox(array('name' => 'zainteresowania[]', 'value' => 'PHP', 'checked' => FALSE));
echo ', Perl';
echo form_checkbox(array('name' => 'zainteresowania[]', 'value' => 'Perl', 'checked' => FALSE));
echo ', Python';
echo form_checkbox(array('name' => 'zainteresowania[]', 'value' => 'Python', 'checked' => FALSE));
echo ', Java';
echo form_checkbox(array('name' => 'zainteresowania[]', 'value' => 'Java', 'checked' => FALSE));
echo '<BR />';
echo form_submit('submit', 'Wyślij');
?></body></html>
Mamy tutaj formularz stworzony za pomocą pomocnika CI i wykorzystujący większość pól. Warto przyjżeć się checkboxom. Nazwa pola to zainteresowania[] - nawiasy kwadratowe na końcu oznaczają tablicę - jeżeli kilka pól nazwiemy tak samo np "zainteresowania" to wartość tego pola po wysłaniu formularza zostanie określona przez ostatnie pole, resztę danych stracimy. Gdy dodamy [] dane ze wszystkich pól o tej samej nazwie będą przetrzymywane w tablicy.

Formularz wysyła dane do formularz/submit czyli kontroler: formularz, metoda: submit. Oto kontroler wyświetlający formularz jak i wynik:
<?php
class Formularz extends Controller
{
function index()
 {
 // załadowanie formularza
 $this->load->view('form');
 }
function submit()
 {
 // załadowanie wynikowego formularza, przekazanie danych
 $this->load->view('wynik', array('czas' => $this->input->post('czas'), 'login' => $this->input->post('login'), 'password' => $this->input->post('password'), 'plec' => $this->input->post('plec'), 'zainteresowania' => $this->input->post('zainteresowania')));
 }
}
Pod adresem index.php/formularz zobaczymy nasz formularz. Po jego wysłaniu dane zostaną przekazane do drugiego widoku (wynik), który je wyświetli. $this->input->post('nazwa_pola') zwraca wartość pola o podanej nazwie. Widok wynik.php wygląda tak:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<?PHP

echo '<B>Login</B> '.$login;
echo '<BR /><B>Czas</B> '.$czas;
echo '<BR /><B>Hasło</B> '.$password;
echo '<BR /><B>Płeć</B> '.$plec;
echo '<BR /><B>Zainteresowania:</B><BR>';
foreach($zainteresowania as $val)
 {
 echo $val.'<BR />';
 }
?></body></html>
Wyświetla wszystkie dane, a zainteresowania, które są tablicą wyświetla w pętli. Powyższe trzy pliki prezentują pełen formularz, lecz brakuje jeszcze walidacji danych - sprawdzania ich poprawności i obecności. Tym zajmiemy się w kolejnym Warsztacie

Praca Domowa

- Spróbuj stworzyć własny formularz, który po wysłaniu wyświetli wprowadzone dane. Użyj różnych typów pól
RkBlog

Kurs Code Igniter, 14 July 2008

Comment article
Comment article RkBlog main page Search RSS Contact