Skip to content

View Helpers

selectTag()

selectTag() — returns string

Available in: controller Category: Form Tag Functions

Builds an HTML <select> element using a name and a set of options. Unlike select(), it does not require a model object and is not bound to a property. It is useful for standalone select controls or when you want full manual control over the field. Note: Pass any additional arguments like class, rel, and id, and the generated tag will also include those values as HTML attributes.

NameTypeRequiredDefaultDescription
namestringyesName to populate in tag’s name attribute.
optionsanyyesA collection to populate the select form control with. Can be a query recordset or an array of objects.
selectedstringnoValue of option that should be selected by default.
includeBlankanynofalseWhether to include a blank option in the select form control. Pass true to include a blank line or a string that should represent what display text should appear for the empty value (for example, ”- Select One -”).
multiplebooleannofalseWhether to allow multiple selection of options in the select form control.
valueFieldstringnoThe column or property to use for the value of each list element. Used only when a query or array of objects has been supplied in the options argument. Required when specifying textField
textFieldstringnoThe column or property to use for the value of each list element that the end user will see. Used only when a query or array of objects has been supplied in the options argument. Required when specifying valueField
labelstringnoThe label text to use in the form control.
labelPlacementstringnoaroundWhether to place the label before, after, or wrapped around the form control. Label text placement can be controlled using aroundLeft or aroundRight.
prependstringnoString to prepend to the form control. Useful to wrap the form control with HTML tags.
appendstringnoString to append to the form control. Useful to wrap the form control with HTML tags.
prependToLabelstringnoString to prepend to the form control’s label. Useful to wrap the form control with HTML tags.
appendToLabelstringnoString to append to the form control’s label. Useful to wrap the form control with HTML tags.
encodeanynotrueUse this argument to decide whether the output of the function should be encoded in order to prevent Cross Site Scripting (XSS) attacks. Set it to true to encode all relevant output for the specific HTML element in question (e.g. tag content, attribute values, and URLs). For HTML elements that have both tag content and attribute values you can set this argument to attributes to only encode attribute values and not tag content.
1. Basic selectTag with a query
cities = model("city").findAll();

<!--- View code --->
#selectTag(name="cityId", options=cities)#

2. SelectTag with valueField and textField
selectTag(
    name="cityId",
    options=cities,
    valueField="id",
    textField="name"
)

3. Including a blank option
selectTag(
    name="cityId",
    options=cities,
    valueField="id",
    textField="name",
    includeBlank="- Select a City -"
)

4. Multiple selection
selectTag(
    name="cityIds",
    options=cities,
    valueField="id",
    textField="name",
    multiple=true
)

5. Custom label and HTML wrapping
selectTag(
    name="cityId",
    options=cities,
    valueField="id",
    textField="name",
    label="Choose a City",
    labelPlacement="before",
    prepend="<div class='input-group'>",
    append="</div>"
)