CodeIgniter User Guide Version 1.7.2


폼 Form Helper

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

헬퍼로딩 Loading this Helper

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

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

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

form_open()

환경설정(config preferences)파일에 설정해둔 기반(base)URL을 포함한 폼 태그의 여는 부분을 생성합니다. 옵션으로 폼 속성(attributes)과 숨김필드(hidden input)를 추가하실 수 있습니다.

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

예:

echo form_open('email/send');

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

<form method="post" 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" 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" 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);

만약 $options가 다중배열로 넘겨진다면 form_dropdown() 함수는 배열의 키를 라벨로 사용하여 <optgroup>을 생성합니다.

form_multiselect()

다중선택 필드를 만들게 해줍니다. 첫번째 파라미터는 필드의 이름, 두번째 파라미터는 옵션의 연관배열, 세번째 파라미터는 미리 선택될 값이나 값들을 설정합니다. 파라미터 사용법은 필드의 이름을 배열로 사용하는 점을 제외하고는, 예를 들어 foo[], 위의 form_dropdown()과 같습니다.

Lets you create a standard multiselect field. The first parameter will contain the name of the field, the second parameter will contain an associative array of options, and the third parameter will contain the value or values you wish to be selected. The parameter usage is identical to using form_dropdown() above, except of course that the name of the field will need to use POST array syntax, e.g. foo[].

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