I am currently playing with HTML_QuickForm to create forms in PHP. This seems to be a bit limited by the fact that it's hard to insert my own javascript or adjust the display and grouping of certain elements.
Are there any alternatives to QuickForm that can provide more flexibility?
If you find it difficult to embed Javascript in your form elements, consider using a JavaScript framework like Prototype or jQuery . There you can centralize the task of inputting event processing into form controls.
, HTML. . , Prototype - :
$('myFormControl').observe('click', myClickFunction)
.
/EDIT: , , , HTML_QuickForm. .
Zend_Form Zend Framework, . Zend_Dojo javascript. , , , , Dojo naitively. , , , , .
OnLamp: PHP-
HTML_QuickForm Zend_Form , , , , , , . , LOOK ( HTML-) .
, :
fillInFormValues () 2, 3 5 .
Zend_Form; ini, :
[main] vessel.form.method = "post" vessel.form.elements.name.type = "text" vessel.form.elements.name.name = "name" vessel.form.elements.name.options.label = "Name: " vessel.form.elements.name.options.required = true vessel.form.elements.identifier_type.type = "select" vessel.form.elements.identifier_type.name = "identifier_type" vessel.form.elements.identifier_type.options.label = "Identifier type: " vessel.form.elements.identifier_type.options.required = true vessel.form.elements.identifier_type.options.multioptions.IMO Number = "IMO Number"; vessel.form.elements.identifier_type.options.multioptions.Registry organisation and Number = "Registry organisation and Number"; vessel.form.elements.identifier_type.options.multioptions.SSR Number = "SSR Number"; vessel.form.elements.identifier.type = "text" vessel.form.elements.identifier.name = "identifier" vessel.form.elements.identifier.options.label = "Identifier: " vessel.form.elements.identifier.options.required = true vessel.form.elements.identifier.options.filters.lower.filter = "StringToUpper" vessel.form.elements.email.type = "text" vessel.form.elements.email.name = "email" vessel.form.elements.email.options.label = "Email: " vessel.form.elements.email.options.required = true vessel.form.elements.owner_id.type = "hidden" vessel.form.elements.owner_id.name = "owner_id" vessel.form.elements.owner_id.options.required = true ; submit button vessel.form.elements.submit.type = "submit" vessel.form.elements.submit.name = "Update" vessel.form.elements.submit.option.value = "Update"
Zend_Form , .
ViewScript
$this->form->setDecorators( array(array('ViewScript', array('viewScript' => 'forms/aform.phtml'))));
viewcript - :
<?=$this->element->title->renderViewHelper()?>
, , , .
Zend_Form , , . , , , Javascript, WYSIWYG.
, clonefish. , " ".