Avatar billede trax Nybegynder
14. april 2008 - 16:03 Der er 2 kommentarer

Fejlmeldinger ved ikke udfyldt form

Jeg har været ved at lave noget check på at felterne i en form er udfyldt.

Det virker egentligt fint nok, men jeg ønsker bare at lave det mere simpelt.

Her er koden:

<form id="FormName" action="index.php?page=tilmeld" method="post" name="tilfoej">

<?php

if (isset($_POST['email']))
{
   
    if (empty($_POST['butik']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste din n&aelig;rmeste butik."; ?></b></font><?php
    }
    if (empty($_POST['navn']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste dit navn."; ?></b></font><?php
    }
    if (empty($_POST['adresse']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste din adresse."; ?></b></font><?php
    }
    if (empty($_POST['postnummer']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste dit postnummer."; ?></b></font><?php
    }
    if (empty($_POST['city']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste din by."; ?></b></font><?php
    }
    if (empty($_POST['telefonnummer']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste dit telefonnummer."; ?></b></font><?php
    }
    if (empty($_POST['alder']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste din alder."; ?></b></font><?php
    }
    if (empty($_POST['foedselsdag']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste din f&oslash;dselsdag."; ?></b></font><?php
    }
    if (empty($_POST['kaeledyr']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste dit k&aelig;ledyr."; ?></b></font><?php
    }
    if (empty($_POST['email']))
    {
      ?><br><font face="verdana" color="red" size="2"><b><?php echo "Du skal indtaste din e-mail."; ?></b></font><?php
    }

else

{

    $modtager = $_POST['email'];     
                            //$to
                            //Mailens modtager
                            //Email adressen skrives imellem <>
                            //Kort navn før <>
                           
    $modtager .= "; mail@mail.dk";     
                            //$to
                            //Mailens modtager
                            //Email adressen skrives imellem <>
                            //Kort navn før <>                       

    $from = "From: Afsender <mail@mail.dk>"; 
                            //$to     
                            //Afsender af mailen
                            //Email adressen skrives imellem <>
                            //Kort navn før <>

    $subject = "Tilmelding til klubben"; //Mailens titel
   
    $message .= "Butik:&nbsp;";
    $message .= $_POST[butik];  //Mailens indhold
    $message .= "<br>";
    $message .= "Navn:&nbsp;";
    $message .= $_POST[navn];
    $message .= "<br>";
    $message .= "Adresse:&nbsp;";
    $message .= $_POST[adresse];
    $message .= "<br>";
    $message .= "Postnummer:&nbsp;";
    $message .= $_POST[postnummer];
    $message .= "&nbsp;";
    $message .= "By:&nbsp;";
    $message .= $_POST[city];
    $message .= "<br>";
    $message .= "Tlf.::&nbsp;";
    $message .= $_POST[telefonnummer];
    $message .= "<br>";
    $message .= "Alder:&nbsp;";
    $message .= $_POST[alder];
    $message .= "&nbsp;&Aring;r"; 
    $message .= "<br>";
    $message .= "F&oslash;dselsdag:&nbsp;";
    $message .= $_POST[foedselsdag];
    $message .= "<br>";
    $message .= "K&aelig;ledyr:&nbsp;";
    $message .= $_POST[kaeledyr];
    $message .= "<br>";
    $message .= "E-mail:&nbsp;";
    $message .= $_POST[email];
    $message .= "<br><br>";
    $message .= "</body></html>";
   
 
    $headers  = "Content-type: text/html\r\n";     
                            //$headers
                            //Standard for mails - optional
                            //Nødvendigt for, at angive afsenderen.
                             
    $headers .= "$from\r\n"; //Sætter afsender i mailens header
     
    mail($modtager, $subject, $message, $headers); //Sender mailen
    ?><br><font face="verdana" color="green" size="2"><b><?php
        echo "Din tilmelding er nu modtaget - Du vil modtage dit medlemskort inden for ca. 4 uger"; ?></b></font><?php
}

}
?>
   
    <br><br>
        <table width="380" border="0" cellspacing="0" cellpadding="0">
<tr>
                    <td valign="bottom" width="180">Butik:</td>
                    <td valign="bottom">
                <div class="small">Bynavn<br>
                    <input class="input" type="text" name="butik" size="30">&nbsp;*</div>
            </td>
           
                </tr>
                <tr>
                    <td valign="bottom" width="180">Navn:</td>
                    <td valign="bottom">
                <div class="small">fx. Jens Jensen<br>
                    <input class="input" type="text" name="navn" size="30">&nbsp;*</div>
            </td>
                </tr>
                <tr>
                    <td valign="bottom" width="180">Adresse:</td>
                    <td valign="bottom">
                <div class="small">fx vej 18<br>
                    <input class="input" type="text" name="adresse" size="30">&nbsp;*</div>
            </td>
                </tr>
                <tr>
                    <td valign="bottom" width="180">Postnummer:</td>
                    <td valign="bottom">
                <div class="small">fx 1234<br>
                    <input class="input" type="text" name="postnummer" size="4" maxlength="4">&nbsp;*</div>
            </td>
                </tr>
                <tr>
                    <td valign="bottom" width="180">By:</td>
                    <td valign="bottom">
                <div class="small">fx by<br>
                    <input class="input" type="text" name="city" size="30">&nbsp;*</div>
            </td>
                </tr>
                <tr>
                    <td valign="bottom" width="180">Tlf.:</td>
                    <td valign="bottom">
                <div class="small">fx 12345678<br>
                    <input class="input" type="text" name="telefonnummer" size="8" maxlength="8">&nbsp;*</div>
            </td>
                </tr>
                <tr>
                    <td valign="bottom" width="180">Alder:</td>
                    <td valign="bottom">
                <div class="small">fx 10<br>
                    <input class="input" type="text" name="alder" size="3" maxlength="3">&nbsp;*</div>
            </td>
                </tr>
                <tr>
                    <td valign="bottom" width="180">F&oslash;dselsdag:</td>
                    <td valign="bottom">
                <div class="small">fx 12-12-1212<br>
                    <input class="input" type="text" name="foedselsdag" size="10" maxlength="10">&nbsp;*</div>
            </td>
                </tr>
                <tr>
                    <td valign="bottom" width="180">K&aelig;ledyr:</td>
                    <td valign="bottom">
                <div class="small">fx Hund<br>
                    <input class="input" type="text" name="kaeledyr" size="30">&nbsp;*</div>
            </td>
                </tr>
                <tr>
                    <td valign="bottom" width="180">E-mail:</td>
                    <td valign="bottom">
                <div class="small">fx mail@mail.dk<br>
                    <input class="input" type="text" name="email" size="30">&nbsp;*</div>
            </td>
                </tr>
            </table>
    <br>
    <input class="buttons" type="submit" value="Bliv medlem">&nbsp;<input class="buttons" type="reset" value="Slet alt">
        </form>

       
       
        <?php
       
        if ( $_POST['submit'] = "Tilf&oslash;j")
   
include("connect.php"); //Inkluder filen der connecter til min database

$sql="INSERT INTO klub (butik, navn, adresse, postnummer, city, telefonnummer, alder, foedselsdag, kaeledyr, email) VALUES ('$_POST[butik]','$_POST[navn]','$_POST[adresse]','$_POST[postnummer]','$_POST[city]','$_POST[telefonnummer]','$_POST[alder]','$_POST[foedselsdag]','$_POST[kaeledyr]','$_POST[email]')";

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

?>

Som sagt vil jeg gerne have det mere simpelt, hvis en bruger ikke udfylder samtlige felter, vil brugeren få 10 fejlmeddelser på en liste.

Disse vil jeg gerne have definere som at "stjernen" ude i højre side af formen, skal blive BOLD og Rød .. og der så kommer en fejl et sted på siden, der skriver at de markerede skal indtastes.

Der er jeg stået af :)
Avatar billede klgn Nybegynder
14. april 2008 - 21:20 #1
Du kunne bruge prototype og scripaculous til den slags, se dette link f.eks.
http://www.tetlaw.id.au/view/javascript/really-easy-field-validation
Avatar billede showsource Seniormester
15. april 2008 - 06:32 #2
Evt. bruge sessions:

<?php

session_start();

if($_SERVER["REQUEST_METHOD"] == "POST") {

$i = 0;

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

        if(trim($value) == "") {
        $_SESSION[$key] = 1;
        $i++;
        }else{
        $_SESSION["form"][$key] = stripslashes($value);
        }

    }

    if($i > 0) {
    header("Location:http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]);
    exit;
    }

echo"<pre>";
print_r($_POST);
echo"</pre>";

unset($_SESSION["form"]);

exit;

}

function vis_fejl($var) {

    if(isset($_SESSION[$var])) {
    echo"<span style=\"color: red; font-size: 0.8em;\">* Skal udfyldes!</span>\r\n";
    }

    unset($_SESSION[$var]);

}

function vis_value($var) {

    echo (isset($_SESSION["form"][$var]) ? htmlspecialchars($_SESSION["form"][$var]) : "");

}

?>
<html><head><title>Tjek form</title>


</head>

<body>

<form action="formpost.php" method="post" style="display: inline;">

Navn: <?php vis_fejl("navn"); ?><br />
<input name="navn" type="text" size="32" value="<?php vis_value("navn"); ?>"><br />

Email: <?php vis_fejl("email"); ?><br />
<input name="email" type="text" size="32" value="<?php vis_value("email"); ?>"><br />

Webside: <?php vis_fejl("url"); ?><br />
<input name="url" type="text" size="40" value="<?php vis_value("url"); ?>"><br />

Besked: <?php vis_fejl("message"); ?><br />
<textarea name="message" cols="60" rows="8"><?php vis_value("message"); ?></textarea>

<div style="padding-left: 60px; padding-top: 8px;"><input type="submit" value="Send besked"></div>

</form>

<pre>

<?php
print_r($_SESSION);

unset($_SESSION["form"]);

?>

</pre>
</body></html>
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