CODEIGNITER 3X
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 8: Tìm hiểu Helper Url Và Form Trong Codeigniter

Trong bài này bạn sẽ được học:

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
  1. Giới thiệu về helper
  2. Làm việc với form helper
  3. Các helper thông dụng

Lưu ý:
Tôi sử dụng Codeigniter version 2.1.4.
Tên folder của tôi là citest cho bài viết này.


Trong Codeigniter Framework nó chia ra 2 khái niệm đó là helper & library, vậy câu hỏi đặt ra ở đây. Helper nó là cái gì ? nó là những function được xây dựng sẵn nhầm hỗ trợ lập trình viên trong quá trình xây dựng ứng dụng website bằng nền tảng CI, có rất là nhiều helper được khởi tạo sẵn. Vậy library khác helper ở điểm nào, xin thưa rằng library được viết dựa trên những cái class dùng để định nghĩa các phương thức và thực thi các hành động ở bên trong lớp đó, dĩ nhiên nó khác biệt với helper là với helper chúng ta có thể gọi nó ở bất cứ nơi đâu và tùy ý sử dụng nó, ví dụ như gọi ra list menu ngay trong view chẳng hạn. Hai helper mà các bạn sẽ sử dụng nhiều nhất chính là form & url

Load Helper

Cũng giống như library, để có thể sử dụng tất cả các hàm trong các helper thì việc đầu tiên chúng ta phải gọi chúng ra, và dĩ nhiên là phải gọi ngay constructor trong controller để có thể tái sử dụng helper đó với toàn bộ action, có 2 cách để load helper, từ đó chúng ta hoàn toàn có thể gọi các hàm ở ngay controllerview một cách dễ dàng.

$this->load->helper('url');
$this->load->helper(array('url', 'form'));

Url Helper

Trong helper này có rất là nhiều phương thức, nhưng không phải cái nào là cũng xài đâu nhé, bản thân framework nó rất là nặng, cho nên vì thế tôi khuyên các ban chỉ nên dùng vài phương thức sau đây.

  1. base_url(): Chỉ định đường dẫn tuyệt đối, khai báo trong file config.php.
  2. site_url(): Nó gần giống với base_url./li>
  3. anchor(): Khai báo một đường link -> echo anchor(‘news/local/123′, ‘My News’, ‘title=”News title”‘).
  4. url_title(): Hỗ trợ Url Friendly dạng hom-nay-troi-co-mua.
  5. redirect(): Hỗ trợ chuyển sang một trang được chỉ định.

Trong CI chúng ta sẽ phải làm việc với router và khi phải làm việc với nó thì tất cả các đường dẫn sẽ đươc rewrite dưới dạng thư mục hoặc file, nếu chúng ta không chỉ định ra một đường dẫn tuyệt đối thì sẽ không thể nào định nghĩa được những đường dẫn của thư mục images & css. Tránh lạm dụng phương thức trong helper vì làm như thế sẽ khiến ứng dụng website của các bạn chạy rất là chậm, bình thường tôi chỉ dùng 2 phương thức redirect & base_url để làm tốt công việc cấu hình đường dẫn tuyệt đối , chuyển trang khi tôi thao tác xong một hành động nào đó.

Bài viết này được đăng tại [free tuts .net]

Form Helper

Đây là một helper cũng khá là hay nó giúp các bạn nhanh chóng tạo ra các form dùng để nhập liệu một cách nhanh chóng, đọc cái user guide của nó cũng khiến tôi phải chóng mặt vì nó khá là rối và khó hình dung, tôi cũng phải mất vài ngày mói tìm hiểu xong nó nhưng theo quan điểm của tôi, hãy sử dụng nó tùy lúc thôi nhé, còn không cứ dùng html mà tạo form bình thường thôi tại sao tôi lại nói vậy, hãy đọc tiếp bài viết tự các bạn sẽ hiểu.

Tôi sẽ tạo ra môt controller tên là form, gọi helper url & form ra nhé, vì giờ đang tìm hiểu cách sử dụng nó mà. Do chúng ta gọi một lần 2 helper nên tôi sử dụng cách 2 để tiến hành gọi helper, chúng ta sẽ gọi các phương thức trong form helper ngay trong phần view, trước khi bắt đầu ví dụ này tôi sẽ liệt kê nhưng phương thức mà chúng ta sắp sử dụng.

<?php
class Form extends CI_Controller{
      public function __construct(){
          parent::__construct();
          $this->load->helper(array('url', 'form'));
      }
 
     public function index(){
         $this->load->view("form");
      }
}
?>


form_open: Mở thẻ form.
form_close: Đỏng thẻ form.
form_input: Tạo thẻ input với type là text.
form_label: Tương đương với thẻ label trong html.
form_password: Thẻ input với type là password.
form_upload: Thẻ input với tyle là file
form_textarea: Thẻ textarea.
form_dropdown: Thẻ select option trong form.
form_radio: Thẻ tạo nút chọn trong form.
form_submit: Thẻ input với type là submit.
form_fieldset: Thẻ mở fieldset trong form.
form_fieldset_close: Thẻ đóng fieldset trong form.

Có rất nhiều cách tạo ra form cũng như khai báo thông số cho nó, nhưng cách tôi muốn các bạn nên sử dụng chính là tạo ra một cái mảng và chứa các thông số cho tiện. ví dụ tôi tạo ra một form input với name là kaito, value là freetuts.net thì trong CI nó chỉ chúng ta viết như sau,giả sử tôi muốn size là 25, id với style là gì gì đó thì chẳng lẽ phải viết dài dòng sao, thay vì viết dài dòng thì tôi sẽ hứng tất cả thông số trong một cái mảng, sau đó truyền $tenbien vào trong form_input là xem như xong. Các bạn có thể xem đoạn code phía dưới và sẽ dễ dàng hình dung ra được cách khai báo các phương thức trong form helper, và bản thân tôi thì thấy nó phức tạp quá, tôi thích sự đơn giản và chung thủy nên cứ html mà làm tới thôi , viết kiểu này cũng hay và oách nên tùy lúc sử dụng thôi nhé, lạm dụng là vào viện đấy.

echo form_input('kaito', 'freetuts.net')


Full Code:

<?php
$user=array(
    "name" => "username",
    "size" => "25",
);
$pass=array(
    "name" => "pass",
    "size" => "25",
);
$email=array(
    "name" => "email",
    "size" => "25",
);
$gender1=array(
    "name" => "gender",
    "value" => "m",
    "checked" => TRUE,
);
$gender2=array(
    "name" => "gender",
    "value" => "f",
);
$opt=array(
    "1" => "Viet Nam",
    "2" => "Cambodia",
    "3" => "Malaysia",
);
$note=array(
    "name" => "note",
    "cols" => "40",
    "rows" => "5",
);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>freetuts.net</title>
</head>
  
<body>
 <?php
    echo form_open(base_url()."index.php/form/index");
    echo form_fieldset("Member Register");
    echo form_label("Fullname: ").form_input($user)."<br />";
    echo form_label("Password: ").form_password($pass)."<br />";
    echo form_label("Email: ").form_input($email)."<br />";
    echo form_label("Gender: ").form_radio($gender1)."Male".form_radio($gender2)."Female<br />";
    echo form_label("Country: ").form_dropdown("Country: ", $opt, 1)."<br />";
    echo form_label("Note: ").form_textarea($note)."<br />";
    echo form_label(" ").form_submit("ok",  "Register");
    echo form_fieldset_close();
    echo form_close();
 ?>
</body>
</html>


Chạy code trên và viewsource để cảm nhận được sự huyền diệu của form helper.

Các Helper thông dụng

Tôi sẽ liệt kê một số helper mà lâp trình viên hay sử dụng trong quá trình làm việc với CI, và khuyến cáo là các bạn chỉ nên tìm hiểu cho biết chứ đừng lạm dụng nó nhé, bản thân CI nó đã khá là chậm nên hãy tìm cách tối ưu nó chứ đừng làm nó chạy chậm thêm bằng việc nhồi nhét các helper.


CAPTCHA Helper
Date Helper
Download Helper
Email Helper
HTML Helper
Language Helper
Security Helper
Text Helper
String Helper


Hãy sử dụng helper đúng cách và đúng lúc, hãy thông minh khi làm việc với bất cừ Framework nào, trong loạt bài tới tôi sẽ hướng dẫn các bạn cách tự xây dựng một helper trong CI.

Kết:

Mọi thứ nên bắt đầu từ những điều đơn giản và đừng làm nó phức tạp hơn, đó chính là những gì mà tôi muốn nhẳn nhủ với các bạn thông qua bài viết này, tôi không cấm các bạn sử dụng helper , nhưng hãy sử dụng nó một cách hợp lý và hiệu quả, bài viết này tôi không diễn đạt code quá nhiều vì cách sử dụng form helper nó rất là đơn giản, user guide của nó viết thì thấy rối vậy thôi. Tôi tìm hiểu và đúc kết ra được vài cách và cách trên là cách tối ưu nhất mà các lập trình viên hay sử dụng.

Cùng chuyên mục:

Chia sẻ theme web blog mobile đơn giản (Theme FMB1)

Chia sẻ theme web blog mobile đơn giản (Theme FMB1)

Freetuts Mobile Blog được code trên nền tảng PHP và MySQL, sử dụng Codeigniter Framework.

Bài 19: Rewrite URL trong Codeigniter

Bài 19: Rewrite URL trong Codeigniter

Sau một khoảng thời gian không đụng tới Codeigniter thì hôm nay lại có dịp…

Tìm hiểu quy trình load model trong codeigniter

Tìm hiểu quy trình load model trong codeigniter

Việc load model rất quen thuộc với những bạn sử dụng framwork codeigniter nhưng đôi…

Tự tạo thư viện load widget trong codeigniter

Tự tạo thư viện load widget trong codeigniter

Như các bạn biết mặc định hệ thống của Codeigniter hoạt động theo mô hình…

Hướng dẫn custom bộ core codeigniter

Hướng dẫn custom bộ core codeigniter

Có khi nào bạn đặt câu hỏi có nên sửa các file nằm trong bộ…

Bài 18: Tìm Hiểu Library Shopping Cart trong Codeigniter

Bài 18: Tìm Hiểu Library Shopping Cart trong Codeigniter

Chào mừng các bạn đã quay trở lại freetuts.net. Như vậy ở bài trước chúng…

Bài 17: Xây dựng crud add - update - edit user

Bài 17: Xây dựng crud add - update - edit user

Crud là một thuật ngữ không hề xa lạ với dân lập trình, nó là…

Bài 16: Kỹ thuật master layout trong codeigniter

Bài 16: Kỹ thuật master layout trong codeigniter

Đây là một vấn đề mở rộng mà CI không đề cập trong user guide,…

Bài 15: Tìm Hiểu Helper Language Trong Codeigniter

Bài 15: Tìm Hiểu Helper Language Trong Codeigniter

Trong bài viết này , chúng ta chỉ tìm hiểu ở khái niệm cơ bản…

Bài 14: Tìm Hiểu Helper Text Trong Codeigniter

Bài 14: Tìm Hiểu Helper Text Trong Codeigniter

Nhìn tiêu đề, hẳn các bạn đã đoán ra hôm nay chúng ta sẽ tìm…

Bài 13: Tìm Hiểu Helper Date Trong Codeigniter

Bài 13: Tìm Hiểu Helper Date Trong Codeigniter

Hôm nay chúng ta sẽ tiếp tục tìm hiểu sâu hơn về các helper mà…

Bài 12: Đóng dấu watermark image trong codeigniter

Bài 12: Đóng dấu watermark image trong codeigniter

Đầu tiên xin gửi lời cảm ơn các bạn đã quan tâm và theo dõi…

Bài 11: Tìm Hiểu Library Image Trong Codeigniter

Bài 11: Tìm Hiểu Library Image Trong Codeigniter

Kết thúc bài trước, chúng ta đã hoàn thành khá xuất sắc phần upload hình…

Bài 10: Tìm hiểu library upload trong codeigniter

Bài 10: Tìm hiểu library upload trong codeigniter

Chào mừng các bạn đã quay trở lại freetuts.net, đã lâu rồi tôi không viết…

Bài 9: Tìm Hiểu Library Form Validation

Bài 9: Tìm Hiểu Library Form Validation

Cho tới bài viết này, chắc hẵn các bạn đều đã biết rõ cách load…

Bài 7: Load Library Pagination Trong Codeigniter

Bài 7: Load Library Pagination Trong Codeigniter

Đây là một library cũng khá là phổ biến, hay được sử dụng trong quá…

Bài 6: Load Library Database Trong Codeigniter

Bài 6: Load Library Database Trong Codeigniter

Tôi sẽ không giới thiệu về library này mà sẽ xoáy sâu vào các thao…

Bài 5: Load Library Session Trong Codeigniter

Bài 5: Load Library Session Trong Codeigniter

Đây là một thư viện khá là quan trọng , trong framework CI (Codeigniter) .…

Bài 4: Load Model Trong Codeigniter

Bài 4: Load Model Trong Codeigniter

Trong Codeigniter để kết nối với Database chúng ta phải cấu hình thông tin cho…

Bài 3: Load View Trong Codeigniter

Bài 3: Load View Trong Codeigniter

Trong Codeigniter tất cả các Views đều được đặt trong thư mục application/views. Các bạn…

Top