Re: [SMARTY-DEV] Smarty html forms validation builtin request
| From: | Monte Ohrt | 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>