Form Helper
ไฟล์ Form Helper จะมีฟังก์ชันช่วยทำงานกับฟอร์ม
เรียกใช้งานผู้ช่วยนี้
ผู้ช่วยนี้จะถูกเรียกใช้งานได้จากโค้ดต่อไปนี้
$this->load->helper('form');
มีฟังก์ชันที่ใช้งานได้ดังนี้
form_open()
สร้างแท็กเปิดฟอร์มซึ่งอิงกับ URL ฐานซึ่งสร้างจากค่าปรับแต่งของคุณ โดยยอมให้คุณสามารถใส่ค่าฟอร์มและใส่ค่านำเข้าแบบซ่อนได้ (hidden input field)
สำหรับประโยชน์หลักในการใช้สิ่งนี้แทนใช้การเขียนโค้ดเข้าไปโดยตรงเองด้วย HTML คือมันทำให้ไซ์ของคุณเคลื่อนย้ายได้สะดวกเมื่อเกิดการเปลี่ยนแปลงกับ URL
ตัวอย่างการใช้งาน
echo form_open('email/send');
ตัวอย่างด้านบนจะสร้างฟอร์มจากจุดนั้นโดยขึ้นอยู่กับฐาน URL (base url) รวมกับ "email/send" ส่วนของ URI แบบนี้
<form method="post" action="http:/example.com/index.php/email/send" />
เพิ่มคุณลักษณะ
คุณลักษณะสามารถเพิ่มได้โดยใช้อาเรย์แบบเชื่อมโยงไปยังพารามิเตอร์ที่สองแบบนี้
$attributes = array('class' => 'email', 'id' => 'myform');
echo form_open('email/send', $attributes);
ตัวอย่างด้านบนจะสร้างผลลัพธ์แบบนี้
<form method="post" action="http:/example.com/index.php/email/send" class="email" id="myform" />
เพิ่มฟิลด์นำเข้าแบบซ่อน (Hidden Input Field)
ฟิลด์ซ่อนสามารถถูกเพิ่มไปแบบอาเรย์แบบซ่อนได้ในพารามิเตอร์ที่สามแบบนี้
$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden);
ตัวอย่างด้านบนจะสร้างผลลัพธ์แบบนี้
<form method="post" 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()
ฟังก์ชันนี้มีลักษณะเดียวกันกับแท็ก form_open() ด้านบนยกเว้นมันเพิ่มคุณลักษณะแบบหลายส่วนเข้าไป ซึ่งจำเป็นถ้าคุณต้องการใช้ฟอร์มที่มีการอัพโหลดไฟล์
form_hidden()
ยอมให้คุณสร้างฟิลด์ซ่อน คุณสามารถใส่ชื่อและค่าผลลัพธ์แบบสติรงลงไปเพื่อสร้างหนึ่งฟิลด์ได้
form_hidden('username', 'johndoe');
// จะได้ผลลัพธ์เป็น
<input type="hidden" name="username" value="johndoe" />
หรือคุณสามารถที่จะใช้อาเรย์แบบเชื่อมโยงในการสร้างหลายฟิลด์ได้
$data = array(
'name' => 'John Doe',
'email' => 'john@example.com',
'url' => 'http://example.com'
);
echo form_hidden($data);
// Would produce:
<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" />
form_input()
ให้คุณสร้างฟิลด์ข้อความแบบมาตรฐาน อย่างน้อยที่สุดคุณสามารถส่งชื่อฟิลด์และค่าของฟิลด์ในพารามิเตอร์และพารามิเตอร์สองตามลำดับ
echo form_input('username', 'johndoe');
หรือคุณสามารถส่งอาเรย์แบบเชื่อมโยงซึ่งใส่ข้อมูลที่คุณปรารถนาลงไปในฟอร์ม
$data = array(
'name' => 'username',
'id' => 'username',
'value' => 'johndoe',
'maxlength' => '100',
'size' => '50',
'style' => 'width:50%',
);
echo form_input($data);
// Would produce:
<input type="text" name="username" id="username" value="johndoe" maxlength="100" size="50" style="width:50%" />
ถ้าคุณต้องการใส่ข้อมูลเพิ่มเติมอย่างเช่น JavaScript คุณสามารถส่งค่าแบบสตริงไปยังพารามิเตอร์ที่สามได้
$js = 'onClick="some_function()"';
echo form_input('username', 'johndoe', $js);
form_password()
ฟังก์ชันนี้เหมือนกันในทุกๆด้านกับฟังก์ชัน form_input() ด้านบนยกเว้นว่าตั้งประเภทเป็น "password"
form_upload()
ฟังก์ชันนี้เหมือนกันในทุกๆด้านกับฟังก์ชัน form_input() ด้านบนยกเว้นว่าตั้งประเภทเป็น "file" ซึ่งยอมให้อัพโหลดไฟล์ได้
form_textarea()
ฟังก์ชันนี้เหมือนกันในทุกๆด้านกับฟังก์ชัน form_input() ด้านบนยกเว้นมันจะสร้างเป็น "textarea" แทน ข้อสังเกตุ: แทนที่จะกำหนดคุณลักษณะ "maxlength" และ "size" แบบตัวอย่างด้านบนคุณจะต้องกำหนด "rows" และ "cols" แทน
form_dropdown()
ยอมให้คุณสร้างฟิลด์แบบตกลงอย่างรวดเร็ว (drop-down field) โดยพารามิเตอร์แรกจะต้องใส่ค่าชื่อของฟิลด์ พารามิเตอร์ที่สองจะต้องใส่อาเรย์แบบเชื่อมโยงซึ่งเป็นทางเลือก และพารามิเตอร์ที่สามจะใส่ค่าที่จะถูกเลือก คุณสามารถส่งอาเรย์ไปยังพารามิเตอร์ที่สามได้และ CodeIgniter จะสร้างการเลือกแบบหลายอันสำหรับคุณ ตัวอย่างเช่น
$options = array(
'small' => 'Small Shirt',
'med' => 'Medium Shirt',
'large' => 'Large Shirt',
'xlarge' => 'Extra Large Shirt',
);
$shirts_on_sale = array('small', 'large');
echo form_dropdown('shirts', $options, 'large');
// Would produce:
<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>
echo form_dropdown('shirts', $options, $shirts_on_sale);
// Would produce:
<select name="shirts" multiple="multiple">
<option value="small" selected="selected">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>
ถ้าคุณต้องการให้การเปิดแท็ก <select> มีข้อมูลเพิ่มเติมอย่างเช่น JavaScript คุณสามารถส่งค่าสตริงไปยังพารามิเตอร์ที่สี่
$js = 'onChange="some_function()"';
echo form_dropdown('shirts', $options, 'large', $js);
ถ้าอาเรย์ที่ถูกส่งไปยัง $options เป็นอาเรย์หลายมิติ form_dropdown() จะแสดงเป็น <optgroup> พร้อมกับกุญแจอาเรย์เป็นฉลาก (label)
form_multiselect()
ยอมให้คุณสร้างฟิลด์เลือกได้หลายตามมาตรฐาน โดยพารามิเตอร์ตัวแรกจะใส่ชื่อของฟิลด์ พารามิเตอร์ที่สองจะประกอบด้วยอาเรย์แบบเชื่อมโยงซึ่งเป็นทางเลือก และพารามิเตอร์ที่สามจะประกอบด้วยค่าหนึ่งค่าหรือหลายค่าที่คุณต้องการให้ถูกเลือก พารามิเตอร์ที่ถูกใช้จะเหมือนกับที่ใช้กับ form_dropdown() ด้านบนยกเว้นว่าชื่อของฟิลด์จำเป็นต้องใช้เป็นอาเรย์ POST แบบนี้เป็นต้น foo[]
form_fieldset()
ยอมให้คุณสร้างฟิลด์ fieldset/legend
echo form_fieldset('Address Information');
echo "<p>fieldset content here</p>\n";
echo form_fieldset_close();
// Produces
<fieldset>
<legend>Address Information</legend>
<p>form content here</p>
</fieldset>
เหมือนกันกับฟังก์ชันอื่น คุณสามารถใส่อาเรย์แบบเชื่อมโยงในพารามิเตอร์ที่สอง ถ้าคุณต้องการใส่คุณลักษณะเพิ่มเติม
$attributes = array('id' => 'address_info', 'class' => 'address_info');
echo form_fieldset('Address Information', $attributes);
echo "<p>fieldset content here</p>\n";
echo form_fieldset_close();
// Produces
<fieldset id="address_info" class="address_info">
<legend>Address Information</legend>
<p>form content here</p>
</fieldset>
form_fieldset_close()
สร้างแท็กปิด </fieldset> ความได้เปรียบเพียงอย่างเดียวที่จะใช้ฟังก์ชันนี้คือมันยอมให้คุณใส่ข้อมูลต่อจากแท็กนั้นได้ ตัวอย่างเช่น
$string = "</div></div>";
echo fieldset_close($string);
// Would produce:
</fieldset>
</div></div>
form_checkbox()
ให้คุณสร้างฟิลด์กล่องเช็ค ตัวอย่างเช่น
echo form_checkbox('newsletter', 'accept', TRUE);
// จะให้ผลลัพธ์เป็น
<input type="checkbox" name="newsletter" value="accept" checked="checked" />
พารามิเตอร์ที่สามให้ใส่ตรรกะ TRUE/FALSE เพื่อกำหนดว่ากล่องจะถูกเช็คหรือไม่
เหมือนกับฟังก์ชันฟอร์มอื่นๆในผู้ช่วยตัวนี้ คุณสามารถใส่ค่าอาเรย์ของคุณลักษณะไปยังฟังก์ชันได้
$data = array(
'name' => 'newsletter',
'id' => 'newsletter',
'value' => 'accept',
'checked' => TRUE,
'style' => 'margin:10px',
);
echo form_checkbox($data);
// Would produce:
<input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" />
เหมือนฟังก์ชันตัวอื่นถ้าคุณต้องการใส่ข้อมูลเพิ่มเติมอย่างเช่น JavaScript คุณสามารถใส่มันเป็นสตริงในพารามิเตอร์ที่สี่
$js = 'onClick="some_function()"';
echo form_checkbox('newsletter', 'accept', TRUE, $js)
form_radio()
ฟังก์ชันนี้เหมือนกับฟังก์ชัน form_checkbox() ด้านบนทุกประการยกเว้นว่าจะตั้งค่าประเภทเป็น "radio"
form_submit()
ให้คุณสร้างปุ่มส่งข้อมูล ตัวอย่างเช่น
echo form_submit('mysubmit', 'Submit Post!');
// Would produce:
<input type="submit" name="mysubmit" value="Submit Post!" />
เหมือนกับฟังก์ชันอื่นๆคุณสามารถใส่อาเรย์แบบเชื่อมโยงไปยังพารามิเตอร์แรกถ้าคุณต้องการตั้งค่าคุณลักษณะ และพารามิเตอร์ที่สามยอมให้คุณเพิ่มข้อมูลเเพิ่มเติมอย่างเช่น JavaScript
form_label()
ยอมให้คุณสร้าง <label>ตัวอย่างเช่น
echo form_label('What is your Name', 'username');
// จะได้ผลลัพธ์
<label for="username">What is your Name</label>
เหมือนกับฟังก์ชันอื่นๆคุณสามารถใส่อาเรย์แบบเชื่อมโยงในพารามิเตอร์ที่สาม ถ้าคุณต้องการตั้งค่าคุณลักษณะเพิ่มเติม
$attributes = array(
'class' => 'mycustomclass',
'style' => 'color: #000;',
);
echo form_label('What is your Name', 'username', $attributes);
// Would produce:
<label for="username" class="mycustomclass" style="color: #000;">What is your Name</label>
form_reset()
ยอมให้คุณสร้างปุ่มตั้งค่าใหม่วิธีใช้เหมือนกับ form_submit()
form_button()
ยอมให้คุณสร้างปุ่มธรรมดาตามมาตรฐาน คุณสามารถใส่ชื่อของปุ่มกับเนื้อหาของมันได้จากพารามิเตอร์ที่หนึ่งและสอง ตามลำดับ
echo form_button('name','content');
// Would produce
<button name="name" type="button">Content</button>
หรือคุณจะใส่ค่าเป็นอาเรย์แบบเชื่องโยงซึ่งใส่ข้อมูลตามที่คุณปรารถนาได้
$data = array(
'name' => 'button',
'id' => 'button',
'value' => 'true',
'type' => 'reset',
'content' => 'Reset'
);
echo form_button($data);
// Would produce:
<button name="button" id="button" value="true" type="reset">Reset</button>
ถ้าคุณต้องการใส่ข้อมูลเพิ่มเติมอย่างเช่น JavaScript คุณสามารถส่งค่าสตริงไปยังพารามิเตอร์ที่สามได้
$js = 'onClick="some_function()"';
echo form_button('mybutton', 'Click Me', $js);
form_close()
สร้างแท็กปิดฟอร์ม </form> ความได้เปรียบเพียงอย่างเดียวที่จะใช้ฟังก์ชันนี้คือมันยอมให้คุณใส่ข้อมูลต่อจากแท็กนั้นได้ ตัวอย่างเช่น
$string = "</div></div>";
echo form_close($string);
// Would produce:
</form>
</div></div>
form_prep()
ทำให้คุณปลอดภัยจากการใช้ HTML และตัวอักษรอย่างเช่น quotes (") ภายในฟอร์มโดยไม่ทำให้มันทำลายฟอร์มของคุณ พิจารณาตัวอย่างนี้
$string = 'Here is a string containing "quoted" text.';
<input type="text" name="myform" value="$string" />
สตริงด้านบนจะทำลายฟอร์มของคุณ ฟังก์ชัน form_prep จะเปลี่ยน HTML เป็นในแบบที่ปลอดภัย
<input type="text" name="myform" value="<?php echo form_prep($string); ?>" />
ข้อสังเกตุ: ถ้าคุณใช้ฟังก์ชันใน form helper ที่อยู่ในหน้านี้ค่าของฟอร์มเหล่านั้นจะถูกใช้ฟังก์ชันนี้อย่างอัตโนมัติอยู่แล้ว ดังนั้นไม่จำเป็นจะต้องเรียกฟังก์ชันนี้อีก ใช้มันเฉพาะถ้าคุณสร้างองค์ประกอบด้วยตนเอง
set_value()
อนุญาตให้คุณตั้งค่าของฟอร์มแบบอินพุต (input tag) หรือ textarea คุณต้องใส่ชื่อฟิลด์ไปยังฟังก์ชันแรกและพารามิเตอร์ที่สอง(เป็นทางเลือก) ยอมให้คุณตั้งค่าปกติสำหรับฟอร์มนั้น ตัวอย่างเช่น
<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />
ค่าด้านบนจะถูกแสดงเป็น "0" เมื่อถูกโหลดขึ้นมาครั้งแรก
set_select()
ถ้าคุณใช้เมนู <select> ฟังก์ชันนี้อนุญาตให้คุณแสดงเมนูที่ถูกเลือก พารามิเตอร์แรกจะต้องใส่ชื่อของเมนู select พารามิเตอร์ที่สองจะต้องใส่ค่าของรายการนั้นๆและพารามิเตอร์ที่สาม (เป็นทางเลือก) จะให้คุณตั้งค่าว่าค่านี้เป็นตัวที่ถูกเลือกหรือไม่ (ใช้ตรรกะ TRUE/FALSE).
Example:
<select name="myselect">
<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
</select>
set_checkbox()
อนุญาตให้คุณแสดงสถานะของช่องติกที่ถูกส่งข้อมูลไปได้ โดยพารามิเตอร์ตัวแรกจะต้องเป็นชื่อของกล่องเช็ค พารามิเตอร์ที่สองจะต้องใส่ค่า และพารามิเตอร์ที่สามจะยอมให้คุณตั้งค่ารายการนั้นเป็นค่าทั่วไป (ใช้ตรรกะ TRUE/FALSE) ตัวอย่างเช่น
<input type="checkbox" name="mycheck" value="1" <?php echo set_checkbox('mycheck', '1'); ?> />
<input type="checkbox" name="mycheck" value="2" <?php echo set_checkbox('mycheck', '2'); ?> />
set_radio()
อนุญาตให้คุณแสดงสถานะของปุ่ม radio เมื่อถูกส่งค่าไป ฟังก์ชันนี้เหมือนกันกับฟังก์ชัน set_checkbox()ด้านบน
<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />
<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />