Form 헬퍼¶
Form 헬퍼 파일에는 폼 작업을 도와주는 함수가 포함되어 있습니다.
헬퍼 로드¶
이 헬퍼는 다음 코드를 사용하여 로드합니다:
$this->load->helper('form');
필드 값 이스케이프¶
폼 요소 내에서 HTML 및 따옴표와 같은 문자를 사용해야 할 수도 있습니다. 이를 안전하게
처리하려면 공통 함수
html_escape()를 사용해야 합니다.
다음 예시를 고려하세요:
$string = 'Here is a string containing "quoted" text.';
<input type="text" name="myfield" value="<?php echo $string; ?>" />
위 문자열에는 따옴표가 포함되어 있어 폼이 깨질 수 있습니다.
html_escape() 함수는 HTML 특수 문자를 변환하여 안전하게 사용할 수
있도록 합니다:
<input type="text" name="myfield" value="<?php echo html_escape($string); ?>" />
참고
이 페이지에 나열된 Form 헬퍼 함수를 사용하면 폼 값이 자동으로 이스케이프 되므로 이 함수를 호출할 필요가 없습니다. 직접 폼 요소를 생성하는 경우에만 사용하세요.
사용 가능한 함수¶
사용 가능한 함수는 다음과 같습니다:
- form_open([$action = ''[, $attributes = ''[, $hidden = array()]]])¶
- 매개변수:
$action (
string) – 폼 액션/타겟 URI 문자열$attributes (
array) – HTML 속성$hidden (
array) – 숨겨진 필드 정의 배열
- 반환:
HTML 폼 여는 태그
- 반환 형식:
string
설정 환경 설정에서 구성된 기본 URL로 폼 여는 태그를 생성합니다. 선택적으로 폼 속성과 숨겨진 입력 필드를 추가할 수 있으며, 항상 설정 파일의 문자셋 값을 기반으로 accept-charset 속성을 추가합니다.
직접 HTML을 하드코딩하는 것보다 이 태그를 사용하는 주요 장점은 URL이 변경되더라도 사이트 이식성이 높아진다는 점입니다.
간단한 예시:
echo form_open('email/send');
위 예시는 기본 URL에 “email/send” URI 세그먼트를 추가한 폼을 생성합니다:
<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">
속성 추가
두 번째 매개변수에 연관 배열을 전달하여 속성을 추가할 수 있습니다:
$attributes = array('class' => 'email', 'id' => 'myform'); echo form_open('email/send', $attributes);
또는 두 번째 매개변수를 문자열로 지정할 수 있습니다:
echo form_open('email/send', 'class="email" id="myform"');
위 예시는 다음과 유사한 폼을 생성합니다:
<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" class="email" id="myform">
숨겨진 입력 필드 추가
세 번째 매개변수에 연관 배열을 전달하여 숨겨진 필드를 추가할 수 있습니다:
$hidden = array('username' => 'Joe', 'member_id' => '234'); echo form_open('email/send', '', $hidden);
두 번째 매개변수에 거짓 값을 전달하여 건너뛸 수 있습니다.
위 예시는 다음과 유사한 폼을 생성합니다:
<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 = array()[, $hidden = array()]]])¶
- 매개변수:
$action (
string) – 폼 액션/타겟 URI 문자열$attributes (
array) – HTML 속성$hidden (
array) – 숨겨진 필드 정의 배열
- 반환:
HTML 멀티파트 폼 여는 태그
- 반환 형식:
string
이 함수는 위의
form_open()함수와 동일하지만, 파일 업로드에 필요한 multipart 속성을 추가합니다.
- 매개변수:
$name (
string) – 필드 이름$value (
string) – 필드 값
- 반환:
HTML 숨겨진 입력 필드 태그
- 반환 형식:
string
숨겨진 입력 필드를 생성할 수 있습니다. 이름/값 문자열을 전달하여 하나의 필드를 생성할 수 있습니다:
form_hidden('username', 'johndoe'); // Would produce: <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" /> */
값 필드에 연관 배열을 전달할 수도 있습니다:
$data = array( 'name' => 'John Doe', 'email' => 'john@example.com', 'url' => 'http://example.com' ); echo form_hidden('my_array', $data); /* Would produce: <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" /> */
추가 속성이 있는 숨겨진 입력 필드를 생성하려면:
$data = array( 'type' => 'hidden', 'name' => 'email', 'id' => 'hiddenemail', 'value' => 'john@example.com', 'class' => 'hiddenemail' ); echo form_input($data); /* Would produce: <input type="hidden" name="email" value="john@example.com" id="hiddenemail" class="hiddenemail" /> */
- form_input([$data = ''[, $value = ''[, $extra = '']]])¶
- 매개변수:
$data (
array) – 필드 속성 데이터$value (
string) – 필드 값$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML 텍스트 입력 필드 태그
- 반환 형식:
string
표준 텍스트 입력 필드를 생성할 수 있습니다. 첫 번째와 두 번째 매개변수에 필드 이름과 값을 최소한으로 전달할 수 있습니다:
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" value="johndoe" id="username" maxlength="100" size="50" style="width:50%" /> */
JavaScript와 같은 추가 데이터를 포함하려면 세 번째 매개변수에 문자열로 전달할 수 있습니다:
$js = 'onClick="some_function()"'; echo form_input('username', 'johndoe', $js);
또는 배열로 전달할 수 있습니다:
$js = array('onClick' => 'some_function();'); echo form_input('username', 'johndoe', $js);
- form_password([$data = ''[, $value = ''[, $extra = '']]])¶
- 매개변수:
$data (
array) – 필드 속성 데이터$value (
string) – 필드 값$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML 비밀번호 입력 필드 태그
- 반환 형식:
string
이 함수는 “password” 입력 타입을 사용한다는 점을 제외하면 위의
form_input()함수와 동일합니다.
- form_upload([$data = '', $extra = '']])¶
- 매개변수:
$data (
array) – 필드 속성 데이터$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML 파일 업로드 입력 필드 태그
- 반환 형식:
string
이 함수는 “file” 입력 타입을 사용하여 파일 업로드에 사용할 수 있다는 점을 제외하면 위의
form_input()함수와 동일합니다.
- form_textarea([$data = ''[, $value = ''[, $extra = '']]])¶
- 매개변수:
$data (
array) – 필드 속성 데이터$value (
string) – 필드 값$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML textarea 태그
- 반환 형식:
string
이 함수는 “textarea” 타입을 생성한다는 점을 제외하면 위의
form_input()함수와 동일합니다.참고
위 예시의 maxlength 및 size 속성 대신 rows 및 cols를 지정합니다.
- form_dropdown([$name = ''[, $options = array()[, $selected = array()[, $extra = '']]]])¶
- 매개변수:
$name (
string) – 필드 이름$options (
array) – 나열할 옵션의 연관 배열$selected (
array) – selected 속성으로 표시할 필드 목록$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML 드롭다운 선택 필드 태그
- 반환 형식:
string
표준 드롭다운 필드를 생성할 수 있습니다. 첫 번째 매개변수에 필드 이름, 두 번째 매개변수에 옵션의 연관 배열, 세 번째 매개변수에 선택할 값을 전달합니다. 세 번째 매개변수에 여러 항목의 배열을 전달하면 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>에 id 속성이나 JavaScript와 같은 추가 데이터를 포함하려면 네 번째 매개변수에 문자열로 전달할 수 있습니다:
$js = 'id="shirts" onChange="some_function();"'; echo form_dropdown('shirts', $options, 'large', $js);
또는 배열로 전달할 수 있습니다:
$js = array( 'id' => 'shirts', 'onChange' => 'some_function();' ); echo form_dropdown('shirts', $options, 'large', $js);
$options로 전달된 배열이 다차원 배열이면form_dropdown()은 배열 키를 레이블로 사용하여 <optgroup>을 생성합니다.
- form_multiselect([$name = ''[, $options = array()[, $selected = array()[, $extra = '']]]])¶
- 매개변수:
$name (
string) – 필드 이름$options (
array) – 나열할 옵션의 연관 배열$selected (
array) – selected 속성으로 표시할 필드 목록$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML 드롭다운 다중 선택 필드 태그
- 반환 형식:
string
표준 다중 선택 필드를 생성할 수 있습니다. 첫 번째 매개변수에 필드 이름, 두 번째 매개변수에 옵션의 연관 배열, 세 번째 매개변수에 선택할 값 또는 값들을 전달합니다.
매개변수 사용법은 위의
form_dropdown()사용법과 동일하지만, 필드 이름에 POST 배열 구문(예: foo[])을 사용해야 합니다.
- form_fieldset([$legend_text = ''[, $attributes = array()]])¶
- 매개변수:
$legend_text (
string) – <legend> 태그에 넣을 텍스트$attributes (
array) – <fieldset> 태그에 설정할 속성
- 반환:
HTML fieldset 여는 태그
- 반환 형식:
string
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>fieldset 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>fieldset content here</p> </fieldset> */
- form_fieldset_close([$extra = ''])¶
- 매개변수:
$extra (
string) – 닫는 태그 뒤에 추가할 내용 (그대로)
- 반환:
HTML fieldset 닫는 태그
- 반환 형식:
string
닫는 </fieldset> 태그를 생성합니다. 이 함수를 사용하는 유일한 장점은 태그 아래에 추가될 데이터를 전달할 수 있다는 것입니다. 예시:
$string = '</div></div>'; echo form_fieldset_close($string); // Would produce: </fieldset></div></div>
- form_checkbox([$data = ''[, $value = ''[, $checked = FALSE[, $extra = '']]]])¶
- 매개변수:
$data (
array) – 필드 속성 데이터$value (
string) – 필드 값$checked (
bool) – 체크박스를 checked 상태로 표시할지 여부$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML 체크박스 입력 태그
- 반환 형식:
string
체크박스 필드를 생성할 수 있습니다. 간단한 예시:
echo form_checkbox('newsletter', 'accept', TRUE); // Would produce: <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);
또는 배열로 전달할 수 있습니다:
$js = array('onClick' => 'some_function();'); echo form_checkbox('newsletter', 'accept', TRUE, $js);
- form_radio([$data = ''[, $value = ''[, $checked = FALSE[, $extra = '']]]])¶
- 매개변수:
$data (
array) – 필드 속성 데이터$value (
string) – 필드 값$checked (
bool) – 라디오 버튼을 checked 상태로 표시할지 여부$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML 라디오 입력 태그
- 반환 형식:
string
이 함수는 “radio” 입력 타입을 사용한다는 점을 제외하면 위의
form_checkbox()함수와 동일합니다.
- form_label([$label_text = ''[, $id = ''[, $attributes = array()]]])¶
- 매개변수:
$label_text (
string) – <label> 태그에 넣을 텍스트$id (
string) – 레이블을 만들 폼 요소의 ID$attributes (
mixed) – HTML 속성
- 반환:
HTML 필드 레이블 태그
- 반환 형식:
string
<label>을 생성할 수 있습니다. 간단한 예시:
echo form_label('What is your Name', 'username'); // Would produce: <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_submit([$data = ''[, $value = ''[, $extra = '']]])¶
- 매개변수:
$data (
string) – 버튼 이름$value (
string) – 버튼 값$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML input submit 태그
- 반환 형식:
string
표준 제출 버튼을 생성할 수 있습니다. 간단한 예시:
echo form_submit('mysubmit', 'Submit Post!'); // Would produce: <input type="submit" name="mysubmit" value="Submit Post!" />
다른 함수와 마찬가지로 첫 번째 매개변수에 연관 배열을 전달하여 속성을 설정할 수 있습니다. 세 번째 매개변수를 사용하여 JavaScript와 같은 추가 데이터를 추가할 수 있습니다.
- form_reset([$data = ''[, $value = ''[, $extra = '']]])¶
- 매개변수:
$data (
string) – 버튼 이름$value (
string) – 버튼 값$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML input reset 버튼 태그
- 반환 형식:
string
표준 초기화 버튼을 생성할 수 있습니다. 사용법은
form_submit()과 동일합니다.
- form_button([$data = ''[, $content = ''[, $extra = '']]])¶
- 매개변수:
$data (
string) – 버튼 이름$content (
string) – 버튼 레이블$extra (
mixed) – 태그에 추가할 추가 속성 (배열 또는 리터럴 문자열)
- 반환:
HTML 버튼 태그
- 반환 형식:
string
표준 버튼 요소를 생성할 수 있습니다. 첫 번째와 두 번째 매개변수에 버튼 이름과 내용을 최소한으로 전달할 수 있습니다:
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([$extra = ''])¶
- 매개변수:
$extra (
string) – 닫는 태그 뒤에 추가할 내용 (그대로)
- 반환:
HTML 폼 닫는 태그
- 반환 형식:
string
닫는 </form> 태그를 생성합니다. 이 함수를 사용하는 유일한 장점은 태그 아래에 추가될 데이터를 전달할 수 있다는 것입니다. 예시:
$string = '</div></div>'; echo form_close($string); // Would produce: </form> </div></div>
- set_value($field[, $default = ''[, $html_escape = TRUE]])¶
- 매개변수:
$field (
string) – 필드 이름$default (
string) – 기본값$html_escape (
bool) – 값의 HTML 이스케이프를 끌지 여부
- 반환:
필드 값
- 반환 형식:
string
입력 폼 또는 textarea의 값을 설정할 수 있습니다. 함수의 첫 번째 매개변수로 필드 이름을 제공해야 합니다. 두 번째 (선택적) 매개변수는 폼의 기본값을 설정할 수 있습니다. 세 번째 (선택적) 매개변수는 값의 HTML 이스케이프를 끌 수 있으며, 예를 들어
form_input()과 함께 사용하여 이중 이스케이프를 피해야 하는 경우에 유용합니다.예시:
<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />
위 폼은 처음 로드될 때 “0”을 표시합니다.
참고
폼 유효성 검사 라이브러리를 로드하고 이 헬퍼와 함께 사용하는 필드 이름에 대한 유효성 검사 규칙을 설정한 경우, 호출이 폼 유효성 검사 라이브러리의
set_value()메서드로 전달됩니다. 그렇지 않으면 이 함수는$_POST에서 필드 값을 찾습니다.
- set_select($field[, $value = ''[, $default = FALSE]])¶
- 매개변수:
$field (
string) – 필드 이름$value (
string) – 확인할 값$default (
string) – 값이 기본값인지 여부
- 반환:
‘selected’ 속성 또는 빈 문자열
- 반환 형식:
string
<select> 메뉴를 사용하는 경우 이 함수를 사용하면 선택된 메뉴 항목을 표시할 수 있습니다.
첫 번째 매개변수에는 선택 메뉴 이름, 두 번째 매개변수에는 각 항목의 값, 세 번째 (선택적) 매개변수는 항목을 기본값으로 설정할 수 있습니다 (불리언 TRUE/FALSE 사용).
예시:
<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($field[, $value = ''[, $default = FALSE]])¶
- 매개변수:
$field (
string) – 필드 이름$value (
string) – 확인할 값$default (
string) – 값이 기본값인지 여부
- 반환:
‘checked’ 속성 또는 빈 문자열
- 반환 형식:
string
제출된 상태로 체크박스를 표시할 수 있습니다.
첫 번째 매개변수에는 체크박스 이름, 두 번째 매개변수에는 값, 세 번째 (선택적) 매개변수는 항목을 기본값으로 설정할 수 있습니다 (불리언 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($field[, $value = ''[, $default = FALSE]])¶
- 매개변수:
$field (
string) – 필드 이름$value (
string) – 확인할 값$default (
string) – 값이 기본값인지 여부
- 반환:
‘checked’ 속성 또는 빈 문자열
- 반환 형식:
string
제출된 상태로 라디오 버튼을 표시할 수 있습니다. 이 함수는 위의
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'); ?> />
참고
폼 유효성 검사 클래스를 사용하는 경우
set_*()함수가 작동하려면 필드에 빈 규칙이라도 항상 규칙을 지정해야 합니다. 폼 유효성 검사 객체가 정의된 경우set_*()의 제어가 일반 헬퍼 함수 대신 클래스의 메서드로 넘어가기 때문입니다.
- form_error([$field = ''[, $prefix = ''[, $suffix = '']]])¶
- 매개변수:
$field (
string) – 필드 이름$prefix (
string) – 오류 여는 태그$suffix (
string) – 오류 닫는 태그
- 반환:
HTML 형식의 폼 유효성 검사 오류 메시지
- 반환 형식:
string
지정된 필드 이름과 관련된 폼 유효성 검사 라이브러리의 유효성 검사 오류 메시지를 반환합니다. 오류 메시지 주위에 감쌀 여는 태그와 닫는 태그를 선택적으로 지정할 수 있습니다.
예시:
// Assuming that the 'username' field value was incorrect: echo form_error('myfield', '<div class="error">', '</div>'); // Would produce: <div class="error">Error message associated with the "username" field.</div>
- validation_errors([$prefix = ''[, $suffix = '']])¶
- 매개변수:
$prefix (
string) – 오류 여는 태그$suffix (
string) – 오류 닫는 태그
- 반환:
HTML 형식의 폼 유효성 검사 오류 메시지
- 반환 형식:
string
form_error()함수와 마찬가지로 폼 유효성 검사 라이브러리에서 생성된 모든 유효성 검사 오류 메시지를 각 메시지 주위에 선택적인 여는 태그와 닫는 태그와 함께 반환합니다.예시:
echo validation_errors('<span class="error">', '</span>'); /* Would produce, e.g.: <span class="error">The "email" field doesn't contain a valid e-mail address!</span> <span class="error">The "password" field doesn't match the "repeat_password" field!</span> */