function actionDefault() { // Create the form $form = new YDForm('form1', 'GET', '', '_self', array('class' => 'myform')); // Add elements $form->addElement('text', 'txt1', 'Enter text 1:'); $form->addElement('text', 'txt2', 'Enter text 2:'); $form->addElement('submit', 'cmdSubmit', 'submit'); $form->addRule('txt1', 'required', 'txt1 is required'); $form->addRule('txt1', 'maxlength', 'txt1 must be smaller than 15', 15); $form->addCompareRule(array('txt1', 'txt2'), 'equal', 'txt1 and txt2 must be equal'); $form->addFormRule('formrule1'); $form->addFormRule(array('YDValidateRule', 'formrule2')); $form->addFilter('txt1', 'trim'); $form->addFilter('txt2', 'trim'); // Convert the form to XML $xml = $form->render('xml'); YDDebugUtil::dump($xml, 'Form as XML data'); //YDDebugUtil::dump( $form ); // Recreate a new form from the XML data $form2 = new YDForm('form1'); $form2->import('xml', $xml); //YDDebugUtil::dump( $form2 ); YDDebugUtil::dump(array_diff_assoc($form->toArray(), $form2->toArray()), 'toArray difference'); YDDebugUtil::dump(array_diff_assoc($form->_attributes, $form2->_attributes), '_attributes difference'); YDDebugUtil::dump(array_diff_assoc($form->_elements, $form2->_elements), '_elements difference'); YDDebugUtil::dump(array_diff_assoc($form->_rules, $form2->_rules), '_rules difference'); YDDebugUtil::dump(array_diff_assoc($form->_filters, $form2->_filters), '_filters difference'); YDDebugUtil::dump(array_diff_assoc($form->_comparerules, $form2->_comparerules), '_comparerules difference'); YDDebugUtil::dump(array_diff_assoc($form->_formrules, $form2->_formrules), '_formrules difference'); YDDebugUtil::dump(array_diff_assoc($form->_regElements, $form2->_regElements), '_regElements difference'); YDDebugUtil::dump(array_diff_assoc($form->_regRules, $form2->_regRules), '_regRules difference'); YDDebugUtil::dump(array_diff_assoc($form->_regFilters, $form2->_regFilters), '_regFilters difference'); YDDebugUtil::dump(array_diff_assoc($form->_regRenderers, $form2->_regRenderers), '_regRenderers difference'); }
function actionDefault() { // Create the form echo '<p><b>Compare rule: equal</b></p>'; $form1 = new YDForm('form_equal'); $form1->addElement('text', 'txt1', 'Enter text 1:'); $form1->addElement('text', 'txt2', 'Enter text 2:'); $form1->addElement('text', 'txt3', 'Enter text 3:'); $form1->addElement('submit', 'cmd1', 'equal'); // Add the rules $form1->addRule('txt1', 'numeric', 'txt1 should be numeric'); $form1->addRule('txt2', 'numeric', 'txt2 should be numeric'); $form1->addRule('txt3', 'numeric', 'txt2 should be numeric'); $form1->addCompareRule(array('txt1', 'txt2', 'txt3'), 'equal', 'txt1, txt2 and txt3 should be equal'); // Validate or show the form if ($form1->validate()) { YDDebugUtil::dump($form1->getValues(), 'Form1 values'); } else { $form1->display(); } // Create the form echo '<p><b>Compare rule: asc</b></p>'; $form2 = new YDForm('form_asc'); $form2->addElement('text', 'txt1', 'Enter text 1:'); $form2->addElement('text', 'txt2', 'Enter text 2:'); $form2->addElement('text', 'txt3', 'Enter text 3:'); $form2->addElement('submit', 'cmd1', 'asc'); // Add the rules $form2->addRule('txt1', 'numeric', 'txt1 should be numeric'); $form2->addRule('txt2', 'numeric', 'txt2 should be numeric'); $form2->addRule('txt3', 'numeric', 'txt2 should be numeric'); $form2->addCompareRule(array('txt1', 'txt2', 'txt3'), 'asc', 'txt1 < txt2 < txt3'); // Validate or show the form if ($form2->validate()) { YDDebugUtil::dump($form2->getValues(), 'Form2 values'); } else { $form2->display(); } // Create the form echo '<p><b>Compare rule: desc</b></p>'; $form3 = new YDForm('form_desc'); $form3->addElement('text', 'txt1', 'Enter text 1:'); $form3->addElement('text', 'txt2', 'Enter text 2:'); $form3->addElement('text', 'txt3', 'Enter text 3:'); $form3->addElement('submit', 'cmd1', 'desc'); // Add the rules $form3->addRule('txt1', 'numeric', 'txt1 should be numeric'); $form3->addRule('txt2', 'numeric', 'txt2 should be numeric'); $form3->addRule('txt3', 'numeric', 'txt2 should be numeric'); $form3->addCompareRule(array('txt1', 'txt2', 'txt3'), 'desc', 'txt1 > txt2 > txt3'); // Validate or show the form if ($form3->validate()) { YDDebugUtil::dump($form3->getValues(), 'Form3 values'); } else { $form3->display(); } }