RkBlog

Hardware, programming and astronomy tutorials and reviews.

Widoki

Cele

- Poznanie budowy widoków
- Poznanie sposobów przekazywania danych do widoków

Widok

to niejako szablon strony lub jej elementu (np. nagłówek, stopka, szablone newsa itd.). Widok wywoływany jest przez kontroler, który wypełnia go danymi i wysyła do przeglądarki. Widoki umieszczamy w application/views/. W kontrolerach dany szablon ładujemy poleceniem:
$this->load->view('nazwa_widoku');
Przykład, zapisz jako test.php widok o kodzie:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Test CI</title>
</head>
<body>
  to jest z widoku
</body>
</html>
A nasz kontroler "test" zastąp kodem:
<?php
class Test extends Controller
{
function index()
   {
   $this->load->view('test');
   }
}
 ?>
Przy wywoływaniu index.php/test/ pojawi się nasz widok. Zwróć uwagę że przy ładowaniu nie podajemy rozszerzenia (.php)

Przekazywanie danych do widoku

Do widoku można przekazać (podczas ładowania) tablicę lub obiekt. Oto przykład:
<?php
class Test extends Controller
{
function index()
   {
   $tablica = array('czas' => time());
   $this->load->view('test', $tablica);
   }
}
 ?>
W widoku mamy dostęp do danych zawartych w tablicy (lub obiekcie). Można je wyświetlić poprzez echo. Dane są dostępne bezpośredni - przez zmienne o nazwach takich jak klucze tablicy (w tym przypadku kluczem jest "czas" a wartością funkcja time()) Oto przykład widoku:
<?php
to jest z widoku <?PHP echo $czas; ?><br />
<?=$czas;?>
Oba sposoby pozwalają na wyświetlenie zmiennej.

W widokach można też listować dane, np. wpisy z bazy danych. Służą do tego pętle foreach. Oto kontroler:
<?php
class Test extends Controller
{
function index()
   {
   $tablica = array('czas' => time());
   $tablica['imiona'] = array('Andrzej', 'Jędrzej', 'Zbyszek');
   $this->load->view('test', $tablica);
   }
}
 ?>
Jak widzimy mamy tablicę pod kluczem "imiona". By wylistować wszystkie elementy w widoku dodajemy:
<ul>
<?php foreach($imiona as $item):?>
 <li><?=$item;?></li>
<?php endforeach;?>
</ul>
RkBlog

Kurs Code Igniter, 14 July 2008, Piotr Maliński

Comment article