CodeIgnitor: Form Helper - Phần 1


Các khóa học qua video dành cho Hội viên:
Python Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript
<76K/month for all. Đăng ký Hội viên
Đăng ký nhận thông báo về những video mới nhất

Tập tin Form Helper có chứa những hàm hỗ trợ cho người dùng làm việc với các form.

Để tải helper này ta dùng câu lệnh sau:

$this->load->helper('form');

Hàm html_escape()

Có thể bạn cần sử dụng HTML và các ký tự như các dấu nháy chẳng hạn trong các phần tử của form. Để thực hiện điều này an toàn thì ta cần sử dụng hàm html_escape().

Xét ví dụ sau:

$string = 'Here is a string containing "quoted" text.';

<input type="text" name="myfield" value="<?php echo $string; ?>" />

Vì chuỗi ở trên chứa hai cặp nháy là nháy đơn và nháy kép, cho nên nó sẽ dẫn đến lỗi form khi thể hiện dữ liệu cho thẻ <input> tương ứng. Hàm html_escape() sẽ làm nhiệm vụ chuyển đổi các ký tự sang dạng đặc biệt và điều này sẽ khắc phục được lỗi:

<input type="text" name="myfield" value="<?php echo html_escape($string); ?>" />

Lưu ý

Nếu ta sử dụng bất kỳ một hàm nào của form helper để tạo phần tử cho trang web thì các giá trị của form sẽ tự động được làm phù hợp, vì thế ta không cần sử dụng hàm html_escape() trong trường hợp này. html_escape() chỉ cần được dùng đến khi ta tự tạo các phần tử của form một cách thông thường.

Các hàm của Form Helper

form_open($action,$attributes,$hidden)

Tham số:
  • $action (string) – Chuỗi action/target URI của form
  • $attributes (array) – Các thuộc tính HTML
  • $hidden (array) – Mảng định nghĩa các trường ẩn
Trả về:

Thẻ mở form HTML

Kiểu trả về:

 string

Hàm này dùng để tạo một thẻ mở form với URL cơ sở được xây dựng từ các tham chiếu cấu hình của bạn. Nó cho phép ta có thể thêm các thuộc tính form và ẩn các trường input, nó cũng luôn luôn thêm thuộc tính accept-charset dựa trên giá trị charset trong tập tin cấu hình của bạn.

Ưu điểm chính của việc sử dụng thẻ này là giảm được lượng code HTML, nó cho làm cho site của bạn uyển chuyển hơn trong trường hợp thay đổi các URL.

Ví dụ:

echo form_open('email/send');

Ví dụ trên tạo một form trỏ tới URL cơ sở của bạn ghép với đoạn URI "email/send", chẳng hạn nó có thể tương đương như sau:

<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">

Thêm thuộc tính

Thuộc tính có thể được thêm vào hàm này bằng cách sử dụng tham số thứ hai dạng như sau:

$attributes = array('class' => 'email', 'id' => 'myform');
echo form_open('email/send', $attributes);

Bạn cũng có thể đặc tả tham số thứ hai dưới dạng chuỗi như sau:

echo form_open('email/send', 'class="email" id="myform"');

Ví dụ trên sẽ tạo một form dạng như sau:

<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" class="email" id="myform">

Thêm trường ẩn

Để thêm trường ẩn thì ta sử dụng tham số thứ ba của hàm dạng như sau:

$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden);

Ví dụ trên tương đương với việc tạo một form như sau:

<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">
        <input type="hidden" name="username" value="Joe" />
        <input type="hidden" name="member_id" value="234" />

form_open_multipart($action,$attributes,$hidden)

Tham số:
  • $action (string) – Chuỗi URI cho thuộc tính action/target
  • $attributes (array) – Các thuộc tính HTML
  • $hidden (array) – Mảng định nghĩa các trường ẩn
Trả về:

Thẻ mở multipart form HTML

Kiểu trả về: 

string

Hàm này giống hệt như hàm form_open() ở trên, chỉ khác một điều là nó có thêm thuộc tính multipart, thuộc tính này được dùng để upload tập tin.

form_hidden($name,$value)

Tham số:
  • $name (string) – Tên trường
  • $value (string) – Giá trị của trường
Trả về:

Thẻ <input type="hidden">

Kiểu trả về: 

string

Hàm này dùng để tạo thẻ <input type="hidden">. Hàm cho phép thiết lập tên (thuộc tính name) của thẻ và giá trị (thuộc tính value) của thẻ đó:

form_hidden('username', 'johndoe');
// Sẽ tạo ra: <input type="hidden" name="username" value="johndoe" />

Bạn cũng có thể tạo cùng lúc nhiều thẻ hidden bằng cách sử dụng mảng như sau:

$data = array(
        'name'  => 'John Doe',
        'email' => 'john@example.com',
        'url'   => 'http://example.com'
);

echo form_hidden($data);

/*
 Sẽ tạo ra:
 <input type="hidden" name="name" value="John Doe" />
 <input type="hidden" name="email" value="john@example.com" />
 <input type="hidden" name="url" value="http://example.com" />
*/

Bạn cũng có thể tạo một mảng thẻ hidden bằng cách sau:

$data = array(
        'name'  => 'John Doe',
        'email' => 'john@example.com',
        'url'   => 'http://example.com'
);

echo form_hidden('my_array', $data);

/*
 Sẽ tạo ra:

 <input type="hidden" name="my_array[name]" value="John Doe" />
 <input type="hidden" name="my_array[email]" value="john@example.com" />
 <input type="hidden" name="my_array[url]" value="http://example.com" />
*/

Nếu bạn muốn tạo thẻ input hidden bao gồm nhiều thuộc tính hơn bạn làm như sau:

$data = array(
        'type'  => 'hidden',
        'name'  => 'email',
        'id'    => 'hiddenemail',
        'value' => 'john@example.com',
        'class' => 'hiddenemail'
);

echo form_input($data);

/*
 Sẽ tạo ra:

 <input type="hidden" name="email" value="john@example.com" id="hiddenemail" class="hiddenemail" />
*/

form_input($data,$value,$extra)

Tham số:
  • $data (array) – Các thuộc tính của thẻ
  • $value (string) – Giá trị của thẻ
  • $extra (mixed) – Các thuộc tính mở rộng của thẻ
Trả về:

Thẻ <input type="text">

Kiểu trả về: 

string

Hàm này dùng để tạo thẻ <input type="text">. Bạn có thể truyền vào hai đối số là tên và giá trị vào hai tham số đầu của hàm như sau:

echo form_input('username', 'johndoe');

Hoặc bạn cũng có thể truyền một mảng chứa các dữ thuộc tính của thẻ như sau:

$data = array(
        'name'          => 'username',
        'id'            => 'username',
        'value'         => 'johndoe',
        'maxlength'     => '100',
        'size'          => '50',
        'style'         => 'width:50%'
);

echo form_input($data);

/*
 Sẽ tạo ra:

 <input type="text" name="username" value="johndoe" id="username" maxlength="100" size="50" style="width:50%"  />
*/

Nếu bạn muốn thẻ chứa những dữ liệu mở rộng như JavaScript chẳng hạn, thì bạn có thể làm như sau:

$js = 'onClick="some_function()"';
echo form_input('username', 'johndoe', $js);

Hoặc truyền ở dạng mảng:

$js = array('onClick' => 'some_function();');
echo form_input('username', 'johndoe', $js);

form_password($data,$value,$extra)

Tham số:
  • $data (array) – Các thuộc tính của thẻ
  • $value (string) – Giá trị của thẻ
  • $extra (mixed) – Các thuộc tính mở rộng của thẻ
Trả về:

Thẻ <input type="password">

Kiểu trả về: 

string

» Next: CodeIgnitor: Form Helper - Phần 2
« Prev: CodeIgnitor: Lớp Query Builder
Các khóa học qua video dành cho Hội viên:
Python Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript
<76K/month for all. Đăng ký Hội viên
Copied !!!