Re: [SMARTY-DEV] Smarty html forms validation builtin request

From: Date: Mon, 31 Mar 2003 15:07:08 +0000
Subject: Re: [SMARTY-DEV] Smarty html forms validation builtin request
References: 1  Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-1056@lists.php.net to get a copy of this message
Yes you can, that's what custom functions are for. I believe there are already some efforts with form validation functions for smarty, such as smartyform.sourceforge.net. Monte On Sun, 2003-03-30 at 23:53, Ernani Joppert Pontes Martins wrote: > Hi there, > > I was trying to change my Smarty.Compiler class to do some built in > javascript routines to validate forms. > > The better I got was what I need to do to make it work correctly. > > Dear Monte Ohrt or Andrei Zmievski, > > Do you both like this idea? > > The thing is that the method compile file call the method compile_tag > method. > so then I've added a {form...} case in that method so it does interpret the > tags {form name="x" method="..." ..} and either a closing case to > "/form" > tag that produces a simple </form> > > Here is the need, the compile tag only process smarty tags, leaving html > code there. > > The need is to process first time the {form} {input} {select} tags finding a > validate parameter equals to true > > like this > > {form name="test" validate="true"} > Test {input type="text" name="testtext" size="10" > validate="true" > required="The field test is required."} > {/form validate="true"} > > to change to > <script language="javascript"> > function validateForm(obj) > { > if(document.testtext.value == "") > { > alert{"The field test is required."); > } > } > </script> > > <form name="test" onsubmit="validateForm(this);"> > <input type="text" name="testtext" size="10"> > </form> > > The main goal of this procedure is to read all the template searching for > {form validate="true"} > and change it to: > <script language="javascript"> > function validateForm(obj) > { > > Then search for {input type="any" name="it" validate="true" > required="Message"} > and change it to: > if(document.testtext.value == "") > { > alert{"Message"); > } > > And then again search for {/form} and change it to: > </script> > > With this we achieved the script validation and if it was assigned to the > template like this : > > <html> > <head> > {scriptvalidate} > </head> > > The code should be transformed to : > > <html> > <head> > <script language="javascript"> > function validateForm(obj) > { > if(document.testtext.value == "") > { > alert{"The field test is required."); > } > } > </script> > </head> > > The main goal is to compile javascript validation first if exists > then compile all tags like it does already only adding form /form input > select and textarea > cases on the _compile_tag method. > > And assign this javascript code to a smarty reserved variable that if > defined in a part of each header template it assign it and change the code. > > With this we can add more functionality to smarty and to php either since it > will be more complete. > Then we can implement {input validate="true" required="yes" > emailvalue="true"} routines to validate emails, integer numbers, etc. etc. > etc. > > That's my 2 cents > > Ernani -- Monte Ohrt <monte@ispi.net>

« previous php.smarty.dev (#1056) next »