peri hokiperihokiclarustologisticsrimashaop.compola taktis menang gates of olympus x1000 perihokipemain perihoki bongkar trik jepep starlight princess x1000perihoki beri panduan lengkap bermain mahjong ways 2 pgsofttips cara penghasil uang pgsoft mahjong ways 2 perihokimahjong wins 3 perihoki memberikan penggali terbesarfenomena gates of olympus buka peluang besar bagi duta76cara dapat pola emas rahasia di duta7 wild west goldtrik menang pgsoft mahjong ways 2 modal receh maxwin duta76duta76 main pgsoft mahjong ways 2 di sela istirahatscatter hitam mahjong wins 3 spin pasti jepe duta76perihoki spin mahjong ways 2 pgsoft scatter hitam maxwinsimbol mahjong wins 3 yang sering muncul di awal perihokitrik gampang menang mahjong winscuan mahjong wins 3 tanpa hentipola spin taruhan kecil mahjong winsstrategi kunci scatter hitam beruntungacor total mahjong wayskemenangan maksimal mahjong wayskemenangan pria pekanbaru mahjong waysmahjong wins3 fenomena baru sumatera baratmenangkan mahjong dengan lincahmenembus batas keberuntungan mahjong waysmenjajal keberuntungan di mahjong wayspola gratis mahjong ways1scatter hitam senjata rahasia mahjong winsteknik spinning menguntungkan untuk scatter hitamanalisis rtp tertinggi mahjong winsfenomena scatter hitam mahjong winsibu rumah tangga dan keberuntungan mahjongkeseruan main mahjong wins3menang mahjong pengguna baru di sosial mediamenghargai setiap momen di mahjong waysserunya main mahjong di warung internetspin slow motion mancing scatterstrategi jitu maxwin mahjong waysstrategi jitu menang mahjong modal kecil jackpot besaranak kampung papua menggemparkan mahjongkeajaiban scatter hitam mahjong wayskeberhasilan joni mahjong winskejaiban mahjong ways di ujung jalanketua mahjong wins3 kehadiran kemenangan dimulai dari balimahjong kehadiran yang menguntungkanmahjong menggila adat88panduan kilat raih 108 jutatips memenangkan mahjongbarista kopi menang 110 juta spin mahjongdakota76 scatter hitam mahjong wins 3gagal cpns menang mahjong wins 3 rp120 jutakisah karyawan minimarket dapat thr lebih awal mahjong winskisah pelajar sma kuasai mahjong wins 3 inspirasi sekolahkisah penjaga parkir tanah abang motor baru mahjong winskisah sukses ibu rumah tangga bandung mahjong winsmahasiswa kkn beli iphone15 mahjong wins3 dakotamantan anak band influencer mahjong scatter hitampola rtp senin gates of olympus guru matematikaidola scatter hitam gampang meledakidola sensasi jackpotidola pola scatter hitamidola hasilkan jackpot dalam waktu singkatidola mahjong wins 3 bocortukang cuci motor menemukan keberuntungan di mahjong

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 282

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_cookie_params(): Cannot change session cookie parameters when headers already sent

Filename: Session/Session.php

Line Number: 294

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 304

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 314

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 315

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 316

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 317

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 375

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: drivers/Session_files_driver.php

Line Number: 108

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_save_handler(): Cannot change save handler when headers already sent

Filename: Session/Session.php

Line Number: 110

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_start(): Cannot start session when headers already sent

Filename: Session/Session.php

Line Number: 143

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

Tìm hiểu Helper Url Và Form Trong Codeigniter
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