Form fields settings

In this section is described how to create a form, make most common action with it and change the parameters of its fields when the form is already created.

<?
$fields = array(array("Your name", "char", "name", array("required" => true),
                array("Gender", "enum", "gender", array("values_list" => array("male" => "Male", 
                                                                               "female" => "Female"))),
                array("Email", "email", "email"),
                array("Receive news", "bool", "news_subscribe"),
                array("Additional info", "text", "about", array("help_text" => "Tell about yourself"))
);

$form = new Form($fields);
 
//Display all fields of the form, by default using rows of table
echo $form -> display();
 
//Display all fields of the form, in <div> tags in vertical view
echo $form -> displayVertical();
 
//Display selected fields of the form in required order as table rows
echo $form -> display(array("name", "about", "email"));

//Display html code for a separate form field (without a name and wrappers)
echo $form -> displayFieldHtml("gender");

//Display a form with erros, attached to the fields
echo $form -> setDisplayWithErrors() -> display();
?>

Add or delete a form field

$form = new Form($fields);

//Operations with fields are done before validation and displaying on the screen
$form -> addField(array("Phone number", "phone", "phone_number"));
$form -> removeField("news_subscribe");

echo $form -> display();

Change fields parameters

//Make a field mandatory to fill 
$form -> setRequired("about");

//Make several fields mandatory to fill, "*" value for all fields
$form -> setRequiredFields(array("email", "about"));

//Speciafy a field name (title)
$form -> setCaption("email", "E-mail");

//Specify explanation text for the field
$form -> setHelpText("news_subscribe", "Newsletter comes no more than 1 time/month");

//Specify additional html parameters of the field (attributes: id, class, title etc.)
$form -> setHtmlParams("about", 'id="about-me" rows="12"');

//Additional html parameters for several fields
$form -> setHtmlParams(array("email", "name"), 'class="text-input"');

Additional options

//If the values of "enum" type field is a data from other model (foreign key), then we can filter them
$form -> filterValuesList("city", array("active" => 1, "order->asc" => "name"));
 
//For the field of "date" type we can specify it to look as 3 select tags
$form -> setDisplaySelects("date");
 
//For the "enum" type field we can specify display it as radio buttons wrapper in table
//Passed value is a number of colums of table which will be radio wrapped into
$form -> setDisplayRadio("gender", 2);
 
//For "many_to_many" type field display values as a table with checkboxes
//(2 – a number of table columns)
$form -> setDisplayTable("interests", 2);