Avatar billede tobrukDk Novice
23. april 2012 - 14:39 Der er 15 kommentarer og
1 løsning

ville ikke udskrive hvis de er tom!

Hej


Det er sådan at jeg er i gang med at bygge min hjemmeside om til mysqli, og nu skal jeg have gør at hvis input er tom så skal den komme frem med en fejl eller sige man ikke har har gør og ikke sende det videre før at der stå noget i alle sammen . ;)


<form action="" method="post" onsubmit="return validerform ()" name="formular">
        <table border="0">
            <tr>
                <td><p>For/Efternavn</p></td>
                <td>:</td>
                <td><input type="text" name="navn"></td>
            </tr>
            <tr>
                <td><p>Email</p></td>
                <td>:</td>
                <td><input type="email" name="email"></td>
            </tr>
            <tr>
                <td><p>Emne</p></td>
                <td>:</td>
                <td><input type="text" name="emne"></td>
            </tr>
        </table>
    <textarea name="tekst" style="width:605px; height:155px;"></textarea><br />
    <input type="submit" value="Send til Djinfo">
    </form>


js her ,

jeg har prøve at kigge rundt på nette mv..


function validerform () {
    if (document.formular.navn.value == "") {
        alert ("Dit navn er ikke udfyldt");
    return false;
}
    if (document.formular.email.value == "") {
        alert ("Din email er ikke udfyldt");
    return false;
}
    if (document.formular.emne.value == "") {
        alert ("Dit emne er ikke udfyldt");
    return false;
}
      if (document.formular.tekst.value == "") {
        alert ("Din tekst er ikke udfyldt");
    return false;
}
    if (document.formular.navn.value != "" && document.formular.email.value != "" && document.formular.emne.value != "" && document.formular.tekst.value != "") { 
        return true; 
    }
}
Avatar billede olsensweb.dk Ekspert
23. april 2012 - 15:31 #1
hvad er meningen med

if (document.formular.navn.value != "" && document.formular.email.value != "" && document.formular.emne.value != "" && document.formular.tekst.value != "") {
    return true;
}

du laver alle test ovenover

prøv dette istedet
<script type="text/javascript">
function validerform () {
    if (document.formular.navn.value == "") {
        alert ("Dit navn er ikke udfyldt");
        return false;
    }
    if (document.formular.email.value == "") {
        alert ("Din email er ikke udfyldt");
        return false;
    }
    if (document.formular.emne.value == "") {
        alert ("Dit emne er ikke udfyldt");
        return false;
    }
    if (document.formular.tekst.value == "") {
        alert ("Din tekst er ikke udfyldt");
        return false;
    }   
    return true;   
}
</script>


jeg ville dog vælge at teste alle felter før jeg udskriver fejl, derved er der mulighed for at vise brugeren flere fejl, så brugeren ikke hver gang brugeren har rettet en fejl skal trykke send, for at få at vide der er en fejl mere.
det som du gør ved at stoppe ved første fejl er meget udbredt, jeg syntes bare det er irriterende
Avatar billede tobrukDk Novice
23. april 2012 - 15:47 #2
okay, men skal jeg så gøre at jeg vise fejl i php??
Avatar billede olsensweb.dk Ekspert
23. april 2012 - 15:56 #3
php har intet med JS at gøre, du validerer med js for at hindre tomme felter, sendt til php
Avatar billede mireigi Novice
23. april 2012 - 16:41 #4
Den her kan gøre det rigtigt for dig:

function validerForm()
{
    var strErrorText = "";
    var blnValid = true;

    if (document.formular.navn.value == "") {
        strErrorText += "\tNavn\t\t-Mangler at blive udfyldt\r\n";
        blnValid = false;
    }
    if (document.formular.email.value == "") {
        strErrorText += "\tEmail\t\t-Mangler at blive udfyldt\r\n";
        blnValid = false;
    }
    if (document.formular.emne.value == "") {
        strErrorText += "\tEmne\t\t-Mangler at blive udfyldt\r\n";
        blnValid = false;
    }
    if (document.formular.tekst.value == "") {
        strErrorText += "\tTekst\t\t-Mangler at blive udfyldt\r\n";
        blnValid = false;
    }

    if(!blnValid)
    {
        var strMessage = "";
        strMessage += "Der er fejl i udfyldningen af et eller flere felt(er)\r\n";
        strMessage += "\r\n";
        strMessage += strErrorText;
        strMessage += "\r\n";
        strMessage += "Ret fejlen(e) inden du gemmer igen.";
        alert(strMessage);
    }

    return blnValid;
}


Jeg vil dog foreslå at du får noget validering på email, så det kun er gyldigt emails der kan indtastes.
Avatar billede tobrukDk Novice
23. april 2012 - 17:23 #5
#4 hvad skal jeg søge efter?
Avatar billede tobrukDk Novice
23. april 2012 - 17:26 #6
#4 den hjælper ikke den kommer ikke frem og siger noget overhovedet hvis de er tomme!! :O
Avatar billede olsensweb.dk Ekspert
23. april 2012 - 17:29 #7
jeg kan se at mireigi er på linje med mig, med at ville teste alle felter først, jeg ville dog lige fejl beskeden ind i et array, og ligesom mireigi, udskrive til sidst
array løsningen ville jeg anvende da det er den sammen jeg anvender i php.

function validerform(){    
    var ErrorMsg = new Array();               
    var ErrorCount=0;
   
    if (document.formular.navn.value == "") {
        ErrorMsg.push("Navn Mangler at blive udfyldt");
        ErrorCount++;
    }   
    if (document.formular.emne.value == "") {
        ErrorMsg.push("Emne Mangler at blive udfyldt");
        ErrorCount++;
    }
    if (document.formular.tekst.value == "") {
        ErrorMsg.push("Tekst-Mangler at blive udfyldt");
        ErrorCount++;
    }
    if(document.formular.email.value == ""){
        ErrorMsg.push("de har ikke indtasted noget email");       
        ErrorCount++;       
    }
    else{
        // der er ikke nogle grund til at teste mais addressen når jeg ved den er tom
        // checks that an input string looks like a valid email address.
        pattern = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
        if (!pattern.test(document.formular.email.value) ) {
            ErrorMsg.push("de har ikke indtasted en valid email addresse");       
            ErrorCount++;       
        }
    }       
    if(ErrorCount>0){           
        // samling af fejl string        
        var str="";
        for(var j=0; j<ErrorCount; j++){
            str +=ErrorMsg[j]+"\n";
        }
        alert(str);
    }               
    return (ErrorCount>0)? false : true;           
}


#5 google js regex email
Avatar billede olsensweb.dk Ekspert
23. april 2012 - 17:37 #8
man kan sige om email validering, har du allerede noget i form af
<input type="email" name="email">

typen email lave noget validering, men hvor effektiv den er tjaa, det ved jeg ikke
Avatar billede tobrukDk Novice
23. april 2012 - 17:51 #9
#8 jeg har prøve den og den sende det bare videre til database uden at sige noget som helst.. :)
Avatar billede olsensweb.dk Ekspert
23. april 2012 - 18:05 #10
får du nogle js fejl ??, det er klassisk at hvis der er js fejl ignores testen og siden sendes bare vidre :(

prøv dette
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title></title>
    <style type="text/css">
    </style>
    <script type="text/javascript">
    function validerform(){   
        var ErrorMsg = new Array();               
        var ErrorCount=0;
        var pattern="";
   
        if (document.formular.navn.value == "") {
            ErrorMsg.push("Navn Mangler at blive udfyldt");
            ErrorCount++;
        }   
        if (document.formular.emne.value == "") {
            ErrorMsg.push("Emne Mangler at blive udfyldt");
            ErrorCount++;
        }
        if (document.formular.tekst.value == "") {
            ErrorMsg.push("Tekst-Mangler at blive udfyldt");
            ErrorCount++;
        }
        if(document.formular.email.value == ""){
            ErrorMsg.push("de har ikke indtasted noget email");       
            ErrorCount++;       
        }
        else{
            // der er ikke nogle grund til at teste mais addressen når jeg ved den er tom
            // checks that an input string looks like a valid email address.
            pattern = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
            if (!pattern.test(document.formular.email.value) ) {
                ErrorMsg.push("de har ikke indtasted en valid email addresse");       
                ErrorCount++;       
            }
        }       
        if(ErrorCount>0){           
            // samling af fejl string        
            var str="";
            for(var j=0; j<ErrorCount; j++){
                str +=ErrorMsg[j]+"\n";
            }
            alert(str);
        }               
        return (ErrorCount>0)? false : true;           
    }
    </script>
</head>
<body>
<form action="#" method="post" name="formular" onsubmit="return validerform ()">
        <table border="0">
            <tr>
                <td><p>For/Efternavn</p></td>
                <td>:</td>
                <td><input type="text" name="navn"></td>
            </tr>
            <tr>
                <td><p>Email</p></td>
                <td>:</td>
                <td><input type="email" name="email"></td>
            </tr>
            <tr>
                <td><p>Emne</p></td>
                <td>:</td>
                <td><input type="text" name="emne"></td>
            </tr>
        </table>
    <textarea name="tekst" style="width:605px; height:155px;"></textarea><br />
    <input type="submit" value="Send til Djinfo">
</form>
</body>
</html>

du skulle helst ikke komme vidre før alle felter er udfyldt
Avatar billede tobrukDk Novice
23. april 2012 - 18:22 #11
det hjælper intet overhovedet den bliver bare sendt til databasen :(
Avatar billede olsensweb.dk Ekspert
23. april 2012 - 18:31 #12
kom med at link så vi kan se den.
jeg er næsten sikker på du har en js fejl
Avatar billede tobrukDk Novice
23. april 2012 - 18:47 #13
http://djinfo.dk/kontakt/


Jeg har gået det om til mysqli php ;) som olebole har skrevet :D
Avatar billede tobrukDk Novice
23. april 2012 - 18:49 #14
Har fundt fejl.

glemt at skrive .js

kontakt.js
Avatar billede tobrukDk Novice
23. april 2012 - 19:51 #15
#12 vil du have noget for det ?
#4 vil du også have noget for det da du har også været med til at hjælpe ??
Avatar billede olsensweb.dk Ekspert
23. april 2012 - 20:54 #16
får du her
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