Avatar billede sito Nybegynder
04. marts 2003 - 23:52 Der er 12 kommentarer og
3 løsninger

regnemaskine

Hej

Jeg prøver at lave en regnemaskine, hvor brugeren indtaster to tal og en regnemetode i en formular, som så bruges i et php script.
Jeg synes den er lidt svær...

Min formular:

<form method="post" action="calculator.php">
1. tal:
<input type="text" name="value1" size=4>
Regnemetode:
<select name="regneart">
<option name="plus">Plus</option>
<option name="minus">Minus</option>
<option name="gange">Gange</option>
<option name="dividere">Dividere</option>
</select>
2.tal:
<input type="text" name="value2" size=4>
<br><br>
<input type="submit" value="Regn det ud">
</form>

Jeg har så forsøgt at hente det over til en funktion i mit script (er kun nået til plus!), men den returnerer ingen af de indtastede værdier, kun: "plus er"

scriptet:

<?
           
calculator ($plus);
$resultat = $value1 + $value2;
               
function calculator ($plus)
{
echo "$value1 plus $value2 er $resultat";
}
           
?>

Håber i kan hjælpe... :-)
Avatar billede human Nybegynder
04. marts 2003 - 23:54 #1
Er det i én fil der der foregår?
Avatar billede sito Nybegynder
04. marts 2003 - 23:54 #2
nej i 2, både en html fil, og en php fil.
Avatar billede human Nybegynder
04. marts 2003 - 23:56 #3
For ellers skal du lige hente dine variabler:

$HTTP_POST_VARS['dinvar'];
$HTTP_POST_VARS['dinvar2];

Prøv det, smid dem øvert i dit script
Avatar billede sito Nybegynder
04. marts 2003 - 23:59 #4
Jeg har vel allerede hentet mine variabler, i og med at de bliver kaldt igennem formularen?

$value1 og $value2 er noget der bliver indtastet af brugeren i formularen, ligesom $plus
Avatar billede human Nybegynder
05. marts 2003 - 00:01 #5
Du skal stadig hente dine variabler! Hent alle de variabler ind i dit script som skal bruges i dit script. Også selvom det er noget brugeren indtaster!
Avatar billede human Nybegynder
05. marts 2003 - 00:03 #6
I og med den ikke ved hvad value1 og value2 er, så bliver resultatet til ingen ting. Ligesom du selv skriver:

kun: "plus er"
Avatar billede sito Nybegynder
05. marts 2003 - 00:06 #7
Det har jeg prøvet, og det virker heller ikke.
Avatar billede sito Nybegynder
05. marts 2003 - 00:09 #8
hvis jeg i mit script kun skriver:
echo "value1";
Udskriver den værdien af det brugeren har indtastet i formularen, uden at jeg henter mine variabler.
Avatar billede sito Nybegynder
05. marts 2003 - 00:09 #9
$value1 naturligvis :-)
Avatar billede r_brejnholt Nybegynder
05. marts 2003 - 02:40 #10
Sito->

Husk, at variabler i funktioner ikke er globale... (Jeg tror det er det human vil sige). Enten skal du hente dem med over i funktionskald eller ogsaa skal du declarere dem globale i funktionen (skriv blot 'global $value1;' i starten af funktion etc.)

..og saa kan du jo ogsaa bare skippe funktionshallojet, saa laenge det ikke er mere komplekst

<?

if (isset($plus)) {
  $resultat = $value1*1 + $value2*1;
  echo "$value1 plus $value2 er $resultat";
} elseif (isset($minus)) {
  $resultat = $value1*1 - $value2*1;
  echo "$value1 minus $value2 er $resultat";
}               


?>
Avatar billede r_brejnholt Nybegynder
05. marts 2003 - 02:42 #11
PS: Jeg ganger tallene med 1 for at vaere nogenlunde sikker paa programmet parser dem som tal, og ikke strengvaerdier (saa ville den f.eks. risikere at skrive at 1 + 2 = 12)
Avatar billede ohmish Nybegynder
05. marts 2003 - 03:31 #12
ALT PÅ EN SIDE:

<?
function REGNDETTEUD ($value1, $regneart, $value2) {
if ($regneart=="minus") { $tekst="$value1 minus $value2 er: "; return $tekst.($value1-$value2); }
elseif ($regneart=="plus") { $tekst="$value1 plus $value2 er: "; return $tekst.($value1+$value2); }
elseif ($regneart=="gange") { $tekst="$value1 gange $value2 er: "; return $tekst.($value1*$value2); }
elseif ($regneart=="dividere") { $tekst="$value1 dividereret med $value2 er: "; return $tekst.($value1/$value2); }
else return "fejl ved udregning"; }

// NÅR DU VIL REGNE NOGET UD, BRUGES DENNE KOMMANDO (udskift med dine $værdier):

if ($submit) {
echo REGNDETTEUD($value1, $regneart, $value2); }
?>
<form method="post" action="calculator.php">
1. tal:
<input type="text" name="value1" size=4>
Regnemetode:
<select name="regneart">
<option name="plus" value="plus">Plus</option>
<option name="minus" value="minus">Minus</option>
<option name="gange" value="gange">Gange</option>
<option name="dividere" value="dividere">Dividere</option>
</select>
2.tal:
<input type="text" name="value2" size=4>
<br><br>
<input type="submit" name="submit" value="Regn det ud">
</form>
Avatar billede ohmish Nybegynder
05. marts 2003 - 03:31 #13
den virker
Avatar billede ohmish Nybegynder
05. marts 2003 - 03:32 #14
glem det med "//NÅR DU VIL REGNE NOGET UD BLAH BLAH"
Avatar billede sito Nybegynder
08. maj 2003 - 16:21 #15
kan ikke huske hvordan jeg fandt ud af det, så i deler pointene :)
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