Avatar billede gedekid Nybegynder
03. november 2006 - 10:09 Der er 8 kommentarer og
1 løsning

Areal udregninger

Hej eksperter,

jeg sidder og er ved at bikse et script sammen til en areal-udregnings form til facaden af et hus...
Altså man indtaster længden, højden og bredden og de tal bliver så ganget med hinanden.. simpelt matematik... Men man har også mulighed for at indtaste først antallet af døre og vinduer og derefter indtaste målene på disse som så fratrækkes der totale areal...

Man indtaster f.eks. i en text-input, 3 vinduer og der kommer så 3 text-input hvor der så kan indtastes et mål pr. vindue...

Disse inputter hedder vindue1, vindue2, vindue3 som bliver sat med en for-løkke ...

Hvordan kan jeg så sætte det indtastede i disse 3 felter sammen i én variablen med den totale værdi (f.eks. $total_windows_value) således jeg kan trække det fra..
$areal-$totalwindows... ?

Den skal jo lave sætte variablen sammen alt efter hvor hvor vinduer der er indtastet...

-----------KODE----------------

print "<form action=\"". $PHP_SELF ."\" method=\"post\">";
    print "Antal vinduer: <input type=\"text\" name=\"nowindows\" /><br />";
    print "Antal døre: <input type=\"text\" name=\"nodoors\" /><br />";
    print "&nbsp;<input type=\"submit\" name=\"hej\" />";
print "</form>";

$nowindows = $_POST["nowindows"];
$nodoors = $_POST["nodoors"];

for($i=1; $i <= $nowindows; $i++) {
    print "Vindue ".$i."<input type=\"text\" name=\"window[$i]\" /><br />";
}

for($j=1; $j <= $nodoors; $j++) {
    print "Dør ".$j."<input type=\"text\" name=\"door[$j]\" /><br />";
}

$i++;
$j++;

print "Facade";

print "<form action=\"". $PHP_SELF ."\" method=\"post\">";
    print "Længde: <input type=\"text\" name=\"length\" /><br />";
    print "Bredde: <input type=\"text\" name=\"width\" /><br />";
    print "Højde: <input type=\"text\" name=\"height\" /><br />";
    print "&nbsp;<input type=\"submit\" name=\"udregn\" value=\"Udregn areal\" />";
print "</form>";



$udregn = $_POST["udregn"];
$length = $_POST["length"];
$width = $_POST["width"];
$height = $_POST["height"];

if(isset($udregn)) {
    if(empty($length)) {
        print "Du skal skrive en længde";
    }
    elseif(empty($width)) {
        print "Du skal skrive en bredde";
    }
    elseif(empty($height)) {
        print "Du skal skrive en højde";
    }
    else {
        $areal = str_replace(",", ".", $length)*str_replace(",", ".", $width)*str_replace(",", ".", $height);
        print "Facadens areal:&nbsp;". $areal."&nbsp;m<sup>2</sup>";
    }   
}


--------------------------------------------

Håber det er skrevet forståeligt...
Avatar billede kinderaeg Nybegynder
03. november 2006 - 10:41 #1
Du løber simpelthen alle inputfelterne igennem med et loop, for at få værdierne ud af dem, lige meget hvor mange der er:
foreach ($_POST["window"] as $w) {
//kode til behandling af vinduer
}
Avatar billede gedekid Nybegynder
03. november 2006 - 11:02 #2
Super - så får jeg de forskellige værdier ud.. lækkert... men hvordan får jeg så samlet alle værdier i én variabel?
Alstå den ene $w skal plusses med den anden $w (5+8).. så $totalvalue = 13 - der skal nok laves forskellige variabler til hver værdi...
Avatar billede kinderaeg Nybegynder
03. november 2006 - 11:29 #3
Det må så blive noget i retning af:
$arr = explode('+', $w);
$res = 0;
foreach($arr as $val) {
$res += $val;
}
Avatar billede gedekid Nybegynder
03. november 2006 - 11:45 #4
Hmm.. Det er sq godt nok en tricky en den her...

Indtaster jeg f.eks. 3 vinduer.. og skriver så 1,2,3 i de tre felter udskriver den blot 1,2,3.. den skal ligge de tal sammen og udskrive 7
Avatar billede kinderaeg Nybegynder
03. november 2006 - 12:34 #5
$res = 0;
foreach ($_POST["window"] as $w) {
  $arr = explode('+', $w);
  foreach($arr as $val) {
    $res += $val;
  }
}
echo $res;
Så skulle den gerne tage alle værdierne for dine felter og lægge sammen (og få 6, ikke 7 (1+2+3=6)). Hvis du blot skriver arealværdierne i felterne behøver du jo ikke det sidste loop, men kan nøjes med følgende:
$res = 0;
foreach ($_POST["window"] as $w) {
  $res += (int)$w;
}
Avatar billede gedekid Nybegynder
03. november 2006 - 12:50 #6
Perfect - det virker... Takker :) Ja, 6 selvfølgelig... det er det med det hovedregning der.. :)

Smid et svar så får du point..
Avatar billede kinderaeg Nybegynder
03. november 2006 - 15:00 #7
Svar ;)
Avatar billede gedekid Nybegynder
08. november 2006 - 11:19 #8
point til dig :) Takker for hjælpen :)
Avatar billede kinderaeg Nybegynder
08. november 2006 - 12:31 #9
Det var så lidt
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