Egron91 Skrevet 19. mars 2013 Del Skrevet 19. mars 2013 (endret) Hei. Jeg prøver å lage en enkel kalkulator, men jeg får feilmelding etter "else", da programmet ikke forventer at det skal komme { etterpå. Er det noen som ser løsningen? Takker for all hjelp! Her er koden: <?php $page = $_GET['page']; class calc { var $number1; var $number2; var $a="1"; } { if($number1==$a) { function beregn1($number1) { $result =$number1 * 500; echo "Beregnet sum er:1 $result ."; } } else if($number1>$a) { function beregn2($number1) { $result2 =$number1 * 425; echo("Beregnet sum er:2 $result2 ."); exit; } } } $calc = new calc(); ?> <form name="calc" action="?page=calc" method="POST"> Number 1: <input type="text" name="value1" value="0"><br> Number 2: <input type="text" name="value2" value="0"><br> <input type=submit name=oper value="beregn"> <input type=reset value="Nullstill skjema"> </form> <?php if($page == "calc") { $number1 = $_POST['value1']; $number2 = $_POST['value2']; $oper = $_POST['oper']; if(!eregi("[0-9]", $number1)) { echo("Nummer 1 MÅ være nummer"); exit; } if(!eregi("[0-9]", $number2)) { echo("Nummer 2 MÅ være nummer"); exit; } if($oper == "beregn") { $calc->beregn1($number1,$a); } } ?> Endret 19. mars 2013 av Egron91 Lenke til kommentar
nomore Skrevet 19. mars 2013 Del Skrevet 19. mars 2013 Du kan ikke ha en betingelse etter else, da må du bruke else if 1 Lenke til kommentar
Egron91 Skrevet 19. mars 2013 Forfatter Del Skrevet 19. mars 2013 Takk for hjelpen! Nå får jeg feilmelding på linje 67, slutten av scriptet.. det fungerte før da jeg hadde kun 1 function betingelse.. Har jeg skrevet noe feil her? 65 if($oper == "beregn") 66 { 67 $calc->beregn1($number1,$a); 68 } Lenke til kommentar
MikkelRev Skrevet 19. mars 2013 Del Skrevet 19. mars 2013 Bruk elseif istedetfor else if. Ikke avslutt koden med ?> beregn1() er ikke et medlem av klassen calc. Prøv å bruk forskjellig navn på klassen og objektet, eller evt. bruk en statisk klasse og dropp objektet. Lenke til kommentar
Crowly Skrevet 19. mars 2013 Del Skrevet 19. mars 2013 Rar kode, kan forenkles til dette class calc { function beregn1($number1) { $result = $number1 * 500; echo "Beregnet sum er: {$result} ."; } function beregn2($number1) { $result2 = $number1 * 425; echo "Beregnet sum er:2 {$result2} ."; } } // html if($page == "calc") { $number1 = $_POST['value1']; $number2 = $_POST['value2']; $oper = $_POST['oper']; $a=1; if(!eregi("[0-9]", $number1)) { echo("Nummer 1 MÅ være nummer"); exit; } // $number2 er ikke i bruk if(!eregi("[0-9]", $number2)) { echo("Nummer 2 MÅ være nummer"); exit; } if($oper == "beregn") { $calc = new calc(); if ($number1==$a) $calc->beregn1($number1); elseif ($number1>$a) $calc->beregn2($number1); } } Noen kommentarer til din kode class calc { // ingen av disse variablene blir brukt. var $number1; var $number2; var $a="1"; } // fjern denne, ellers avsluttes klassen her { // fjern denne if($number1==$a) // ??? dette skal vel ligge inne i en funksjon, ikke utenfor { function beregn1($number1) { $result =$number1 * 500; // bruk { } rundt variabler i en streng, slik at php helt sikkert hvor variabelen begynner og slutter echo "Beregnet sum er:1 $result ."; // alternativt gjør slik: echo 'Beregnet sum er:1 ' . $result . '.'; } } else if($number1>$a) // ??? { function beregn2($number1) { $result2 =$number1 * 425; echo("Beregnet sum er:2 $result2 ."); exit; // ??? } } } Lenke til kommentar
Egron91 Skrevet 19. mars 2013 Forfatter Del Skrevet 19. mars 2013 Jeg begynte helt på nytt og fra bunnen av... fikk det til nå, med god hjelp fra dere! Takk for hjelpen! koden ble definitivt mye enklere og... <?php $number1 = $_POST['barn']; $number2 = $_POST['voksen']; $num1 = "500"; //Full pris Barn og ungdom $num2 = "375"; //Halv pris Barn og ungdom + forsikring $num3 = "1000"; //Full pris Voksen $num4 = "675"; //Halv pris Voksen + forsikring $num5 = "1"; $num6 = "0"; if($number2==$num6) { $sum_total = (($number1-$num5)*($num2))+($num1); } elseif($number2==$num5) { $sum_total = (($number2-$num5)*($num4))+($num3)+($number1*$num2); } elseif($number2>$num5) { $sum_total = (($number2-$num5)*($num4))+($num3)+($number1*$num2); } echo "Det blir: $sum_total "; ?> <form name="calc" action="?page=calc" method="POST"> Barn: <input type="text" name="barn" maxlength="1" size="1"><br> Voksen: <input type="text" name="voksen" maxlength="1" size="1"><br> <input type=submit value="beregn"> <input type=reset value="Nullstill skjema"> </form> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå