CodeIgniter User Guide Version 2.1.0


폼 Form Helper

폼 헬퍼는 폼조작에 필요한 함수들을 제공합니다.

헬퍼로딩 Loading this Helper

다음과같이 헬퍼를 로드합니다:

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

다음 함수들이 사용가능 합니다:

form_open()

환경설정(config preferences)파일에 설정해둔 기반(base)URL을 포함한 폼 태그의 여는 부분을 생성합니다. 옵션으로 폼 속성(attributes)과 숨김필드(hidden input)를 추가하실 수 있으며,설정 파일의 문자 코드 값에 따라 항상 accept - charset 속성이 추가됩니다.

이 함수를 사용했을때 하드코딩 보다 좋은점은 URL이 변해도 신경쓸 필요가 없다는 점입니다.(이식성이 좋음).

예:

echo form_open('email/send');

위 예제는 아래와같이 기반URL(base URL) 에 "email/send" URI 세그먼트를 덧붙인 폼을 생성합니다:

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

속성 추가하기 Adding Attributes

속성(Attributes)은 연관배열로 만드신 후 두번째 파라미터로 전달하여 설정할 수 있습니다:

$attributes = array('class' => 'email', 'id' => 'myform');

echo form_open('email/send', $attributes);

위 예제는 아래와 유사한 폼을 생성합니다:

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

숨김 입력필드 추가 Adding Hidden Input Fields

숨김필드(Hidden fields)는 세번째 파라미터에 아래와같이 연관배열을 전달하여 생성합니다:

$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()

이함수는 form_open() 와 동일하나 multipart 속성을 추가한다는 점이 다릅니다. multipart는 폼에서 파일을 업로드 해야할때 필요한 속성입니다.

form_hidden()

숨김필드(hidden input)를 생성합니다. 이름/값(name/value)을 넘겨주어 하나의 필드를 생성하실 수 있습니다:

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);

// 결과:

<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()

표준 입력필드(text 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);

// 결과:

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

자바스크립트등 부가적인 데이터를 설정하시려면 ,세번째 파라미터로 문자열을 넘겨주세요:

$js = 'onClick="some_function()"';

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

form_password()

이 함수는 암호타입(password)의 입력필드 생성이라는 점을 제외하면 form_input() 함수와 완전히 동일합니다.

form_upload()

이 함수는 파일 업로드에 사용되는 파일타입(file)의 입력필드 생성이라는 점을 제외하면form_input() 함수와 완전히 동일합니다.

form_textarea()

이 함수는 파일 업로드에 사용되는 텍스트영역타입(textarea) 생성이라는 점을 제외하면form_input() 함수와 완전히 동일합니다. 참고: 위 예제에서 설정하신 "maxlength" 와 "size" 속성대신, "rows" 와 "cols" 를 설정하셔야 합니다.

form_dropdown()

표준 드롭다운(drop-down)필드를 생성합니다. 첫번째 파라미터는 필드의 이름 , 두번째 파라미터는 옵션의 연관배열, 세번째파라미터는 기본으로 선택될 값을 지정합니다. 세번째 파라미터로 배열을 넘겨주면, 이그나이터는 필드를 다중선택(multiple select)의 형태로 생성해줍니다. 예:

$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');

// 결과:

<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);

// 결과:

<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> 태그에서 자바스크립트등 추가로 설정하실때는 문자열을 네번째 파라미터로 넘겨주세요 :

$js = 'onChange="some_function()"';

echo form_dropdown('shirts', $options, 'large', $js);

form_fieldset()

fieldset/legend 필드를 생성합니다.

echo form_fieldset('Address Information');
echo "<p>fieldset content here</p>\n";
echo form_fieldset_close();

// 결과
<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();

// 결과
<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 form_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);

// 결과:

<input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" />

다른 예에서와 같이 , 자바스크립등을 추가하고싶다면, 아래처럼 네번째 파라미터로 넘겨주세요:

$js = 'onClick="some_function()"';

echo form_checkbox('newsletter', 'accept', TRUE, $js)

form_radio()

라디오버튼(radio)을 생성한다는 점을 제외하면 form_checkbox() 함수와 완전히 동일합니다.

form_submit()

표준 전송(submit) 버튼을 생성합니다. 단순 예제:

echo form_submit('mysubmit', 'Submit Post!');

// Would produce:

<input type="submit" name="mysubmit" value="Submit Post!" />

다른함수들과 마찬가지로, 속성을 설정하기위해서 첫번째 파라미터에 연관배열을 넘겨줄 수 있습니다. 세번째 파라미터로 자바스크립트 등을 설정할수 있습니다.

form_label()

<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_reset()

리셋(reset) 버튼을 생성합니다. 함수 사용법은 form_submit()와 동일합니다.

form_button()

표준 버튼(button)을 생성합니다.첫번째 파라미터는 버튼의 이름이며 두번째 파라미터는 내용(content)입니다:

echo form_button('name','content');

// 결과
<button name="name" type="submit">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>
세번째 파라미터로 자바스크립트 등을 추가로 설정할수 있습니다: $js = 'onClick="some_function()"';

echo form_button('mybutton', 'Click Me', $js);

form_close()

</form>태그를 생성합니다.이함수를 사용하는 단하나의 잇점은 태그 생성후 원하는 데이터를 그 아래 덧붙일수 있다는 점입니다. 예:

$string = "</div></div>";

echo form_close($string);

// 결과:

</form>
</div></div>

form_prep()

폼 요소내에서 폼을 망가뜨리지 않고 따옴표(quotes:") 따위의 문자열이나 HTML 을 안전하게 사용할 수 있도록 해줍니다. 아래예제를 살펴보세요:

$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); ?>" />

참고: 본 페이지에 있는 어떤 헬퍼 함수를 사용하더라도 폼값들이 자동으로 변환되기 때문에 이 함수를 직접 호출하실 필요가 없습니다. 여러분 자신만의 폼 요소(elements)를 생성했을때만 이 함수를 호출하시면 됩니다.

set_value()

입력폼이나 텍스트영역(textarea)에 값을 설정합니다. 첫번째 파라미터로 반드시 필드 이름을 넘겨주어야 합니다. 옵션으로 두번째 파라미터를 통해 기본값을 설정하실 수 있습니다. 예:

<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />

위 예에서는 폼이 최초로 로드될때 "0"이 설정되게 됩니다.

set_select()

<select> 메뉴를 사용할때 , 이전에 선택된 메뉴를 표시할 수 있도록 해줍니다(상태유지). 첫번째 파라미터는 반드시 선택메뉴(select menu)의 이름을 넘겨줘야하고 ,두번째 파라미터는 각 아이템의 값 그리고, 세번째 파라미터(옵션)은 기본값을 설정합니다(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()

체크박스를 전송되기전 상태로 표시하도록 해줍니다(상태유지) .첫번째 파라미터는 체크박스의 이름, 두번째 파라미터는 값, 세번째 파라미터(옵션)은 기본값(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()

라디오 버튼을 전송되기전 상태로 표시하도록 해줍니다(상태유지) . 이함수는 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'); ?> />