Avatar billede syswatch Novice
18. marts 2009 - 18:44 Der er 1 kommentar og
1 løsning

Ajax validation af form

Hejsa...
Jeg er lidt på dybt vand her, så bær lidt over med mig :-)
Jeg har fundet et ajax validation script på nettet som jeg synes er dejligt simplet og virker godt.
Dog ønsker jeg at udbygge scriptet, så det ikke kun checker om felterne er tomme, men alt efter hvilket felt der er tale om fx checker det mod en DB.

Er der nogen der give mig et hint om hvordan det evt kan se ud, hvis jeg ønsker at checke om username allerede findes i DB.

INDEX.HTML
<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript">
function ValidateInput(input)
{
    var id = input.id;
    var value = input.value;
   
    $("#" + id).fadeOut();
   
    $("#" + id).removeClass('goodinput');
    $("#" + id).removeClass('badinput');
   
    $.post("validate.php", { inputdata: value },
   
    function(data)
    {
        if(data == 1)
            $("#" + id).addClass('goodinput');
        else
            $("#" + id).addClass('badinput');   
           
        $("#" + id).fadeIn();
      });
}

$(document).ready(function()
{
    var RequiredFields = new Array();
    RequiredFields[0] = "username";
    RequiredFields[1] = "password";
    RequiredFields[2] = "fornavn";
    RequiredFields[3] = "efternavn";
    RequiredFields[4] = "email_address";
   
    for(i=0; i < RequiredFields.length; i++)
    {
        $("#" + RequiredFields[i]).blur(function()
        {
          ValidateInput(this);
        });
    }
});
</script>
</head>

<body>
<form action="action.php" method="post" enctype="application/x-www-form-urlencoded" name="registration_form" id="registration_form">
  <table width="39%" border="0" align="center" cellpadding="5" cellspacing="6">
    <tr>
      <td><label>username
          <br />
          <input type="text" name="username" id="username" />
      </label></td>
      <td><label>password
          <br />
          <input type="password" name="password" id="password" />
      </label></td>
    </tr>
    <tr>
      <td><label>fornavn
          <br />
          <input type="text" name="fornavn" id="fornavn" />
      </label></td>
      <td><label>efternavn
          <br />
          <input type="password" name="efternavn" id="efternavn" />
      </label></td>
    </tr>
    <tr>
      <td><label>email address
          <br />
          <input type="text" name="email_address" id="email_address" />
      </label></td>
      <td><input type="submit" name="submit" id="submit" value="Register" style="color: #6D828F; font-weight: bold" /></td>
    </tr>
  </table>
</form>
</body>

VALIDATE.PHP
<?php

$input = strip_tags(trim($_POST['inputdata']));

function ValidateInput($FormInput)
{
    if(empty($FormInput))
        return false;
    else
        return true;
}

if(ValidateInput($input))
    echo 1;
else
    echo 0;

?>
Avatar billede syswatch Novice
18. marts 2009 - 20:08 #1
Har selv fundet ud af det.
Avatar billede olebole Juniormester
19. marts 2009 - 12:30 #2
<ole>

Ajax vil man aldrig bruge til at validere, om et felt er tomt. Det ville være vanvittigt at lade JavaScript bede serveren om at foretage en validering, når JS ligeså godt selv kan foretage valideringen  =)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester