<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8" /> <title>Another Form generator example</title> <style> body{ background-color:#000; color:#bbb; font-family:Georgia, "times New Roman", serif; font-size:90%; padding-bottom:30px; } h1{ font-weight:bold; font-style:italic; font-size:150%; color:#933; } h1+h2{ font-weight:bold; font-style:italic; font-size:90%; border-bottom:1px solid #933; padding-bottom:10px; margin-bottom:20px; } form{ width:550px; background-color:#111; margin:0px auto; padding:10px 0px; } fieldset{ border:1px solid white; } form div{ margin:3px 0px; padding:3px 0px; min-height:18px; } form p{ font-size:80%; font-style:italic; } input,select, textarea{ background-color:#777; border:1px solid white; border-radius:3px; -moz-border-radius:3px; -webkit-border-radius:3px; display:block; width:260px; } #form_example input, #form_example select, #form_example textarea{ margin-left:210px; } input[type=submit]:hover{ background-color:#aaa; cursor:pointer; } input[type=submit]:active{ background-color:#fff; } input[type=radio],input[type=checkbox]{ display:inline; margin:4px; margin-left:0px !important; width: auto; } label.sublabel{ float:none; text-align:left;; margin-left: 210px; display:block; font-weight:normal; } label.sublabel:hover{ background-color:#555; } input[type=hidden]{ display:none; } input:focus, select:focus, textarea:focus{ background-color:#ddd; } label{ text-align:right; width:200px; float:left; font-weight:bold; } label span{ color:red; } .small{ float:left; margin-left:10px !important; width:100px !important; } div.error{ background-color:#411; } .errorbox{ background-color:#411; font-size:80%; border:1px solid #fff; line-height:140%; } .errorbox ul{ padding-left:20px; } .errorbox h4{ margin:5px; } .errorbox label{ float:none; cursor:pointer; } .errorbox label:hover{ text-decoration:underline; } #secondform{ width:310px; } #secondform label{ display:block; float:none; text-align:left; } #secondform input[type=text], #secondform input[type=submit], #secondform select, #secondform textarea, #secondform label.sublabel{ display:block; margin-left:0px; margin-top:5px; }
</style> </head> <body> <h1>Another Form generator example page</h1> <h2>by Gergely „Garpeer” Aradszki</h2> <?php ini_set('display_errors',1); //------include class require("formgenerator.php"); //------create first form $form=new Form(); //setup form $form->set("title", "Example form"); $form->set("name", "form_example"); $form->set("action", "sample.php"); $form->set("linebreaks", false); $form->set("showDebug", true); $form->set("divs", true); $form->set("html5",true); $form->set("placeholders",true); $form->set("errorPosition", "in_before"); $form->set("submitMessage", "Form submitted!"); $form->set("showAfterSuccess", true); $form->JSprotection("36CxgD");
//sample optionlist form radiobuttons and selects $optionlist=Array("First value" => "first", "Second value" => "second","Third value" => "third"); //simple data loading $loader=Array("username"=>"John Doe", "email"=>"john@doe.com"); $form->loadData($loader);
//mapped data loading (To hide eg. DB field names) $loader=Array("dbmessage"=>"Sample message"); $map=Array("dbmessage"=>"message"); $form->loadData($loader, $map);
//add input & misc fields $form->addText("Fields marked with * must be filled."); $form->addItem("<h2>H2 Example!</h2>"); $form->addField("text", "username","Name", true); $form->addField("text", "email","E-mail", true); $form->addField("text", "date","Date", true); $form->addField("date", "inp1","Date", false); $form->addField("number", "inp2","Number", false); $form->addField("email", "inp3","Email", false); $form->addField("range", "inp4","Range", false); $form->addField("url", "inp5","URL", false); $form->addField("tel", "inp6","Phone", false); $form->addField("text", "sub1","Joined", false, false, "class='small'"); $form->addField("text", "sub2",false, false, false, "class='small'"); $form->addField("checkbox", "terms","Accept terms", true, false, "I accept the terms."); $form->addField("checkbox", "checkbox","Initially checked", false, true, "waddawadda."); $form->addField("radio", "radiobuttons","Choose one", true, false, $optionlist); $form->addField("select", "selector","Choose", false, "third", $optionlist); $form->addField("file", "file","File", true); $form->addField("checkbox", "checklist","Choose some", false, "second, first", $optionlist); $form->addField("textarea", "message","Message", true, false, "cols='40' rows='7'"); $form->button("reset", "resetter", "Reset form");
//assign validators to certain fields $form->validator("username", "textValidator", 2, 20); $form->validator("email", "regExpValidator", "/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/", "Not a valid e-mail address"); $form->validator("terms", "termValidator");
$form->join("sub1", "sub2");
//display the form $form->display("Submit", "form1_submit"); //save the valid data for further use $result=($form->getData()); // it is advised to unset the form after saving the data unset($form);
//------create second form $form2=new Form(); $form2->set("showDebug", true); $form2->set("title", "Second example form"); $form2->set("name", "secondform"); $form2->set("action", "sample.php"); $form2->set("linebreaks", false); $form2->set("divs", true); $form2->set("errorPosition", "in_after"); $form2->set("errorTitle", "Arrrggghhh!!!"); $form2->set("errorLabel", "<i><sup>DUH!</sup></i> "); $form2->set("showAfterSuccess", false); $form2->JSprotection("36CxsaegD", "prtcode2");
//sample errors for debugging echo "<p>Some debug messages: </p>"; $form2->set("naasdfsme", "xyzsfkjl"); $form2->set("errorPosition", "somewhere"); $form2->validator("username2", "textasdValidator", 2, 20);
$form2->addText("Wazzup!");
$optionlist=Array("First value" => "first", "Second value" => "second"); $form2->addItem("<fieldset><legend>fieldset</legend>"); $form2->addField("text", "username2","Name", true, "test", "maxlength='10'"); $form2->addField("text", "email2","E-mail", true); $form2->addItem("</fieldset>"); $form2->addField("hidden", "hiddy","Hidden", false); $form2->addField("password", "pass","Password", true); $form2->addField("file", "file2","File", true); $form2->addField("checkbox", "checkbox2","Accept terms", true, "I accept the terms.");
$form2->validator("username2", "textValidator", 2, 20); $form2->validator("email2", "regExpValidator", "/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/", "Not valid e-mail"); $form2->validator("checkbox2", "termValidator"); $form2->button("submit", "submit2", "Hit me!"); $form2->button("reset", "resetter2", "Reset"); $form2->display(); $result2=($form2->getData()); unset($form2);
//------use data from the first form if ($result){ echo "<p>Data from form1 (Example form):</p>"; foreach ($result as $name =>$item){ echo "<p>". $name . ": ". $item . "</p>"; } } ?> <hr /> <h3>ToDo</h3> <ul> <li>Add better default validators</li> <li>Captcha integration</li> <li>Bughunt</li> </ul> </body> </html>
|