Avatar billede totalpc Seniormester
03. februar 2015 - 09:44 Der er 5 kommentarer og
2 løsninger

If gennemløb kun hvis felter er udfyldt

Jeg har en side hvor nedenstående kode virker fint. Eneste problem er at ved første load af siden hvor der intet er indtastet, så viser den teksten fra sidste <else>.
Jeg er ikke stærk i PHP, så jeg kan ikke selv lave det. Men den skal vel tjekke for om der er noget i felterne fra start og så hoppe udenom, hvis de er tomme. Hjælp :)

function beregn($length){
$beregn = ((($length * $length) + 3) * 1.36 );
Return $beregn;
}

$submit_value = $_POST['action'];
if(!empty($submit_value) && $submit_value == 'post'):

$hk = $_POST['hk'];
$length = $_POST['length'];

if ($length <= 15):

IF ($length <=4 and $hk <= 25.84):

echo '<B><font color="green">Du skal ikke have et speedbådsbevis for at sejle denne kombination af båd '.$length.' meter & motor '.$hk.' HK</B></font><br>';
echo 'Da båden er 4 meter eller herunder og motorkraften er mindre end 25,84 er den ikke omfattet af lovgivningen omkring speedbådsbevis!';

else:
$res = beregn($length);
IF ($res < $hk):
echo '<b><font color="red">Du skal have et speedbådsbevis for at sejle denne kombination af båd '.$length.' meter & motor '.$hk.' HK</b></font><br>';

IF ($length <=4 and $hk <= 25.84):
echo '<b><font color="red">Du skal under : 25,84 hk på denne båd hvis du vil undgå at skulle have speedbådsbevis!</b></font>';
else:
echo '<b><font color="red">Du skal under : '.$res.' hk på denne båd hvis du vil undgå at skulle have speedbådsbevis!</b></font>';
Endif;

else:
echo '<B><font color="green">Du skal ikke have et speedbådsbevis for at sejle denne kombination af båd ('.$length.' meter) & motor ('.$hk.' HK)</b></font>';

IF ($length <=4 and $hk > 25.84):
echo '<b><font color="red">Du skal under : '.$res.' hk på denne båd hvis du vil undgå at skulle have speedbådsbevis!</b></font>';
else:
echo '<B><font color="green">Du skal over : '.$res.' hk på denne båd for at skulle have speedbådsbevis!</b></font>';
Endif;
Endif;
Endif;
Endif;

else:
echo '<b><font color="red">Bådens længde skal være lig med eller under 15 meter!</b></font>';
Endif;
Avatar billede olsensweb.dk Ekspert
03. februar 2015 - 10:25 #1
dit problem ligger her
$submit_value = $_POST['action'];

løsning: pak den ind i en isset
http://php.net/manual/en/function.isset.php

så der kommer til at stå
(utested)
     
if(isset($_POST['action']) ):
.....
else:
            echo '<b><font color="red">Bådens længde skal være lig med eller under 15 meter!</b></font>';
        endif;
endif;
Avatar billede jakobdo Ekspert
03. februar 2015 - 10:27 #2
Et trick du kunne gøre, er at smide følgende kode omkring det hele:

if($_SERVER['method'] == 'POST'){
//Alt din udregningskode
}

Alternativt kan du smide et navn på din submit knap:

<input type="submit" name="mySubmit" value="BEREGN">

og så tilføje denne kode:

if(isset($_POST['mySubmit'])){
//Din kode...
}

Sidste trick kan dog drille lidt, hvis brugeren trykker enter direkte i din form. Mener jeg har set fejlen i tidligere udgaver af IE.
Avatar billede totalpc Seniormester
03. februar 2015 - 11:11 #3
Hey
Begge dele virker fint. Smid svar.
Mange tak
Avatar billede jakobdo Ekspert
03. februar 2015 - 11:24 #4
Et svar
Avatar billede olsensweb.dk Ekspert
03. februar 2015 - 11:34 #5
svar
Avatar billede totalpc Seniormester
03. februar 2015 - 15:10 #6
Takker
Avatar billede jakobdo Ekspert
03. februar 2015 - 15:25 #7
Takker for point
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