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 속성을 추가합니다.

form_hidden($name[, $value = ''])
매개변수:
  • $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() 함수와 동일합니다.

참고

위 예시의 maxlengthsize 속성 대신 rowscols를 지정합니다.

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>

 */