/ / Codeigniter / Comments (2)

View trong CodeIgniter

Nếu các bạn đã tìm hiểu qua về mô hinh MVC thì sẽ hiểu được View là gì rồi phải không nào,View có thể được hiểu là những phần hiển thị ra nội dung mà người dùng thấy được, tương tác được giữa hệ thống và người dùng ví dụ như: hình ảnh, kiểu chữ, giao diện,…Tóm lại là những gì mà chúng ta làm cho người sử dụng tương tác được. Việc tách biệt view và controller, model sẽ giúp người lập trình dễ dàng phát triển và nâng cấp mã nguồn trong tương lai dễ dàng hơn.

Cách load View trong CodeIgniter

– Để sử dụng được view trong codeigniter. Trong controller ta dùng cú pháp:

$this->load->view("Đường dẫn tới view");

Đường dẫn tới view ở đây được tính từ bên trong application/views
– Ví dụ:
Tạo file 1 controller index.php với nội dung:

if (!defined('BASEPATH')) exit('No direct script access allowed');
class Index extends CI_Controller {
    public function index()
    {
        $this->load->view("index/index");
    }
}

Với việc load view như trên thì chúng ta cần tạo ra file theo đường dần: application/views/index/index.php
Trong file view application/views/index/index.php ta ghi nội dung như sau:

<html>
    <head>
         <title>CodeIgniter framework</title>
    </head>
    <body>


<h1>Buoi hoc tong quan ve CodeIgniter Framework tai hocphp.info</h1>


    </body>
</html>

Thư mục chạy code của mình là CodeIgniter_2.2.0 Sau đó các bạn thử chạy với link http://localhost/CodeIgniter_2.2.0/index.php/index ,nếu bạn nào sử dụng file .htaccess để loại bỏ index.php trên url thì có thể chạy link http://localhost/CodeIgniter_2.2.0/index và sẽ được kết quả như sau:

Chạy ứng dụng CodeIgniter đầu tiên

Load view trong view

– Các bạn hoàn toàn có thể sử dụng load 1 view khác trong 1 view nào đó,đây chính là cách mà hiện tại người ta đang sử dụng để lắp ghép các bố cục giao diện website lại với nhau (ví dụ header,left,right,content,footer….)

Ví dụ:
+ Tạo 1 file view có tên header.php với nội dung:

<html>
    <head>
         <title>CodeIgniter framework</title>
    </head>
    <body>

+ Tạo 1 file view có tên footer.php với nội dung:

<html>
    </body>
</html>

+ Tạo 1 file view có tên index.php với nội dung:

$this->load->view("header");


<div class='content'>


<h1>Buoi hoc ve View trong CodeIgniter Framework tai hocphp.info</h1>


     </content>
$this->load->view("footer");

Cách này cũng gần giống như với việc các bạn sử dụng hàm include() trong php để chèn các trang khác vào.

Gửi tham số sang view

– Cú pháp:

   $this->load->view("Đường dẫn tới view", $data);

Trong đó thì $data chính là dữ liệu gửi sang bên view,các bạn cần lưu ý $data phải là 1 mảng dữ liệu,khi sang bên view thì khóa (key) của mảng $data này chính là biến sẽ được sử dụng bên view

– Ví dụ:
Tạo file 1 controller index.php với nội dung:

if (!defined('BASEPATH')) exit('No direct script access allowed');
class Index extends CI_Controller {
    public function index()
    {
        $data = array();
        $data['title'] = 'Buoi hoc tong quan ve CodeIgniter Framework tai hocphp.info';
        $this->load->view("index/index",  $data);
    }
}

Trong file application/views/index/index.php ta ghi nội dung như sau:

<html>
    <head>
         <title>CodeIgniter framework</title>
    </head>
    <body>


<h1><?php echo $title?></h1>


    </body>
</html>

Kết quả như sau:

Chạy ứng dụng CodeIgniter đầu tiên

Như vậy là các bạn thấy bên controller đã gửi sang biến $data[‘title’] và bên view sẽ sử dụng khóa(key) của mảng này chính là biến $title.

Vì khi load view, Codeigniter tự động sẽ lọc và biến khóa title từ controller trở thành 1 biến bình thường. Do đó, tại đó để sử dụng ta chỉ cần viết: echo $title

Gửi nhiều tham số Controller sang View

– Ví dụ:

Tạo controller index.php với nội dung:

class Index extends CI_Controller {
    public function index()
    {
    $data[‘title’] = “Php framework”;
    $data[‘product’] = array(
                 “name” => “nokia 520”,
                 “price”  => “3700000”,
                 “catalog”  => “Nokia”,
    );
    $this->load->view(“index/index“,$data);
    }
}

Trong file application/views/index/index.php ta ghi nội dung như sau:

<html>
    <head>
         <title>CodeIgniter framework</title>
    </head>
    <body>
<h1><?php echo $title?></h1>
<?php 
Echo “Tên sản phẩm là:”.$product[“name”]; 
Echo “Giá sản phẩm là:”.$product[“price”]; 
Echo “Danh mục là:”.$product[“catalog”]; 
?>
    </body>
</html>

Như các bạn thấy bên controller gửi sang 2 khóa của mảng đó chính là $title$product,trong đó biến $product lại là mảng dữ liệu,như vậy tại trang view chúng ta sẽ sử dụng biến $product như là 1 mảng kết hợp bình thường.


Xem video hướng dẫn về Views và Layout master trong CodeIgniter 3.x


Kết thúc bài viết: Qua bài này các bạn đã biết cách sử dụng view,gửi các biến sang bên view,sang bài tiếp theo chúng ta sẽ tìm qua về Model trong CodeIgniter nhé.

 



04/09/2014
Written by nobitacnt

Trong bài viết không tránh khỏi những câu từ chưa chính xác,mong nhận được sự góp ý để website hoàn thiện hơn.Nếu thấy bài viết có ích với bạn hãy like và share để ủng hộ nhé :D.

Bài viết chùng chuyên mục

2 Comments

  1. Cray says:
     /  Reply

    PLugin syntaxhighlighter của web bị lỗi thì phải, mình ko xem đc dòng cầu tiên của các đoạn code

    • nobitacnt says:
       /  Reply

      Cảm ơn bạn đã góp ý,có lẽ do tốc độ mạng chậm lên nó chưa kịp load file js của plugin thôi,bạn có thể f5 lại để xem cho rõ.

Gửi bình luận

Giới thiệu

Mình tạo ra blog này với mong muốn chia sẻ và học hỏi kinh nghiệm trong quá trình thiết kế website. Website đang trong quá trình phát triển chân thành cảm ơn mọi sự góp ý của các bạn để làm cho website ngày càng hoàn thiên.

DMCA.com Protection Status
Theo dõi qua Email

Tổng hợp các bài viết về

Hoc php - CodeIgniter Framework - Laravel Framework - PHP va MYSQL