Avatar billede jkaaaa Praktikant
17. januar 2011 - 20:49 Der er 5 kommentarer og
1 løsning

Validering af felter

Validering
Jeg er helt blank men har fået stykket noget sammen der virker. Men jeg mangler en validering så man ikke kan sende uden at alle felter med * er udfyldte. Jeg har forsøgt at hugge div. men uden jeg har kunnet få det til at virke. Er der nogen der kan hjælpe?

Mvh Jens


HTML filen med formular der sender til .PHP:

<body>
      <div id="all">
          <div id="head">
              <p id="top-ribbon"></p>
              <h1><a href="#">g.dk</a><span>Dansk V&#230;rdi Registering</span></h1>
             
              <ul id="menu">
                  <li><a href="index.html">Forside</a></li>
                  <li><a href="Re"></a></li>
                                <li><a href="afmeld.htm">Afmeld</a></li>
                  <li><a href="kontakt.htm">Kontakt</a></li>
                                    <li><a href="Omos.htm">Om os</a></li>
              </ul>
          </div>
         
          <h2>Reg</h2>
         
        <p> Ved <p>
         
          <p>


        <form action="insert.php" method="post" style="line-height:24px;">
<div id="Gtekst">
G *</div>    <input type="text" id="G" name="g" size="32" maxlength="32" /> <br>
<div id="Fornavntekst"> Fornavn *</div>  <input type="text" id="Fornavn" name="fornavn" size="32" maxlength="32" /><br>
<div id="Efternavntekst"> Efternavn *</div>      <input type="text" id="Efternavn" name="efternavn" size="32" maxlength="32" /><br>
<div id="Adressetekst"> Adresse *</div>      <input type="text" id="Adresse" name="adresse" size="32" maxlength="32" /><br>
<div id="Bytekst"> Postnr* og by *</div>  <input type="text" id="Post" name="postnr" size="3" maxlength="4" />
<input type="text" id="By" name="b" size="22" maxlength="22" /><br>
<div id="Telefon1tekst"> Telefon 1 *</div>  <input type="text" id="Telefon1" name="telefon1" size="32" maxlength="32" /><br>
<div id="Telefon2tekst"> Telefon 2</div>  <input type="text" id="Telefon2" name="telefon2" size="32" maxlength="32" /><br>
<div id="Mailtekst"> E-mail *</div>  <input type="text" id="Mail" name="brev" size="32" maxlength="32" /><br><br>





<input class="button" id="Send" type="submit" value="Send" style="cursor:pointer" name="send" />


</form>








.PHP fil som formularen bliver sendt ti:

<?php
$con = mysql_connect("mydb19.surftown.dk","jkaa","Brug");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("jkaa", $con);mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results='utf8'");


$sql="INSERT INTO my_db (G, Fornavn, Efternavn, Adresse, Postnr, B, Telefon1, Telefon2, brev, dato)
VALUES
('$_POST[g]','$_POST[fornavn]','$_POST[efternavn]', '$_POST[adresse]', '$_POST[postnr]', '$_POST[b]','$_POST[telefon1]', '$_POST[telefon2]', '$_POST[brev]', NOW())";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "Er nu indsendt";


mysql_close($con)
?>



<?php
$con = mysql_connect("mydb19.surftown.dk","jkaa","Brug");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("jkaa", $con);mysql_query("SET NAMES utf8");
mysql_query("SET character_set_results='utf8'");

$sql="INSERT INTO my_db_all (G, Fornavn, Efternavn, Adresse, Postnr, B, Telefon1, Telefon2, brev, dato)
VALUES
('$_POST[g]','$_POST[fornavn]','$_POST[efternavn]', '$_POST[adresse]', '$_POST[postnr]', '$_POST[b]','$_POST[telefon1]', '$_POST[telefon2]', '$_POST[brev]', NOW())";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "";

mysql_close($con)
?>
Avatar billede Fnugus Nybegynder
17. januar 2011 - 21:00 #1
Du kan enten i php-filen som data'en bliver sendt til checke for hver enkelt felt manuelt og sende brugeren tilbage til HTML siden hvis han ikke har udfyldt korrekt. Alternativet til dette er at bruge et javascript

Eksempel (indsæt mellem <head> og </head> i html fil):

function validateForm()
{
var x=document.forms["myForm"]["email"].value
if (x==null || x=="")
  {
  alert("Email must be filled out");
  return false;
  }
}

Brug flg. linje i din form:
<form action="insert.php" method="post" style="line-height:24px;" name="myForm" onsubmit="return validateForm();">

I javascript funktionen kan du tilføje flere felter ved at udvide med en ny var for hvert felt.
Avatar billede Fnugus Nybegynder
17. januar 2011 - 21:00 #2
Forresten, javascriptet er taget fra http://www.w3schools.com/jS/js_form_validation.asp
Avatar billede showsource Seniormester
17. januar 2011 - 21:12 #3
Det er fint nok at bruge javascript, men det er ikke nok.

Der er flere måder at gøre det på med php.

$errors = array();

foreach($_POST as $key => $value) {

    if(trim($value) == "") {
    $errors[] = $key." skal udfyldes!";
    }
}

if(!empty($errors)) {

echo"<a href=\"java script:history.go(-1);\">Tilbage</a>";
echo implode("<br />Felt med ", $errors);
exit;

}

// handle posts ......
Avatar billede jkaaaa Praktikant
17. januar 2011 - 21:13 #4
Tak. Det prøver jeg lige.
Avatar billede jkaaaa Praktikant
17. januar 2011 - 21:28 #5
Det virkede med java, men også tak til dig Show... jeg kom også til at oprette den som "opgave" så du kan snuppe de 100p der hvis du vil. Tusind tak for hjælpen. Jens
Avatar billede woodydrn Nybegynder
18. januar 2011 - 15:43 #6
Jeg håber ikke det var dit rigtige password du sendte med der hehe ;)
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