Avatar billede Labrador Nybegynder
12. januar 2011 - 16:09 Der er 6 kommentarer

Validering

HEJ IGEN.
JEG KUNNE GODT TÆNKE MIG EN VALIDERING TIL FLG. SCRIPT, SÅDAN AT NÅR EN PERSON VIL TILMELDE SIG OG DER IKKE ER FLERE PLADSER POPPER EN SIDE OP MED " DER ER LUKKET FOR TILMELDING.
HILSEN LABRADOR.
"<!doctype html public "-//W3C//DTD HTML 4.0 //EN">

<html>

    <head>

        <title>Title here!</title>

    </head>
   
    <body>
   
        <form name="svarskema"metod="post" action="svarskema.php">
       
            <p>klasse: <input type="text" name="klasse" size="40" maxlength="40"></p>
            <p>fører: <input type="text" name="driver" size="30" maxlength="30"></p>
            <p>kaldenavn: <input type="text" name="kaldenavn" size="50" maxlength="50"></p>
            <p>race: <input type="text" name="race" size="30" maxlength="30"></p>
            <input type="submit"name="send" value= "Del dine oplysninger med andre">
       
        </form>
       
        <?php
       
            $maxAntal = 1;

            // Skab forbindelse til database her.

            $antal_tilmeldte = mysql_query("SELECT COUNT(*) AS antal FROM svarskema") or die(mysql_error());

            if (mysql_result($antal_tilmeldte,0) > $maxAntal) {
           
                echo "Der er lukket for tilmelding.";
           
            } else {
                   
                // Henter indholdet af formularens felter
                $klasse    = $_REQUEST["klasse"];
                $driver    = $_REQUEST["driver"];
                $kaldenavn = $_REQUEST["kaldenavn"];
                $race      = $_REQUEST["race"];
               
                mysql_query ("INSERT INTO svarskema(katalogNR, klasse, fører, kaldenavn, race) values (0, '$klasse', '$driver', '$kaldenavn', '$race')");

            }
        ?>
       
    </body>
   
</html>
Avatar billede webweaver Praktikant
12. januar 2011 - 16:52 #1
Er der noget bestemt krav for denne "popup"?

Hvorfor ønsker du at lave en irriterende popup, som muligvis bare vil blive blokeret af en popupblocker?

Ellers kunne du meget simpelt bare lave en alert med javascript, hvis det ikke er nok bare at skrive det som nu.


if (mysql_result($antal_tilmeldte,0) > $maxAntal) {

?>
     
<script language="javascript" type="text/javascript">
alert('Der er lukket for tilmeldninger.');
</script>

<?php
     
                   
} else ...
Avatar billede showsource Seniormester
12. januar 2011 - 21:28 #2
Eller starte med at tælle antal FØR output, og evt. post, og derved sikre at det rigtige vises, og evt. post ej helle bliver gemt i db.
Avatar billede Labrador Nybegynder
15. januar 2011 - 11:02 #3
Hej.
Det fungerer fint, men jeg tror, at brugeren bliver forviret, når man skriver i formularen og først efter man har sendt kommer beskeden "Holdet er optaget"
Hilsen labrador
Avatar billede webweaver Praktikant
15. januar 2011 - 19:02 #4
Well sådan som det er skrevet i din kode længere oppe, så checker den med det samme og ikke først efter der er trykket submit. Så den burde poppe op med det med det samme.

Der bør så laves et check for om der er trykket submit, (og kunne godt lyde som du har fået lavet det imellemtiden), da den ellers bare vil sætte tomme felter ind i din database.

Hvis du gerne vil have det før submit, så tæller du bare før din if sætning der checker om der er klikket submit, og laver din popup der. Det er bare den samme kode som du har nu, som der skal flyttes lidt rundt på mere eller mindre.

Noget ala,

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">

<html>

<head>

<title>Title here!</title>

</head>

<body>

<form name="svarskema"metod="post" action="svarskema.php">

<p>klasse: <input type="text" name="klasse" size="40" maxlength="40"></p>
<p>fører: <input type="text" name="driver" size="30" maxlength="30"></p>
<p>kaldenavn: <input type="text" name="kaldenavn" size="50" maxlength="50"></p>
<p>race: <input type="text" name="race" size="30" maxlength="30"></p>
<input type="submit"name="send" value= "Del dine oplysninger med andre">

</form>

<?php

$maxAntal = 1;

// Skab forbindelse til database her.

$antal_tilmeldte = mysql_query("SELECT COUNT(*) AS antal FROM svarskema") or die(mysql_error());

if (mysql_result($antal_tilmeldte,0) > $maxAntal) {

echo "Der er lukket for tilmelding.";

} else {

if (isset($_POST["send"])) { // Din if sætning som checker om der er lille submit.

// Henter indholdet af formularens felter
$klasse    = $_REQUEST["klasse"];
$driver    = $_REQUEST["driver"];
$kaldenavn = $_REQUEST["kaldenavn"];
$race      = $_REQUEST["race"];

mysql_query ("INSERT INTO svarskema(katalogNR, klasse, fører, kaldenavn, race) values (0, '$klasse', '$driver', '$kaldenavn', '$race')");

}

}
?>

</body>

</html>
Avatar billede Labrador Nybegynder
21. januar 2011 - 16:25 #5
Hej.
Så langt så godt. Det kører nu.
Labrador.
Avatar billede webweaver Praktikant
21. januar 2011 - 17:00 #6
Okay, det var godt. Så smider jeg et svar, så tråden kan lukkes.
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