27. oktober 2004 - 14:55
Der er
12 kommentarer og 1 løsning
Regnestykke, som vises i tabel
Hej Eksperter. Jeg står og mangler en funktion til mit site. Man skal indtaste sin vægt i et tekst felt, og så skal man vælge om man er mand eller kvinde. Og så et submit knap. Resultatet skal skrives i en tabel, indtil promillen når til 5 eller over. regnestykket 12 * G / vægt (vægt i kilogram) * 0,55(Kvinde) eller 0,68 (Mand) G = Genstande, som skal stige med en for hver række i tabellen, indtil promillen når til 5. Promille er resultatet.
Annonceindlæg fra HP
27. oktober 2004 - 15:16
#1
<?php if (isset($_POST['submit'])) { $genstande = 0; $promille = 0; while ($promille<5) { $genstande++; $promille = round((12*$genstande)/($_POST['kg']*$_POST['sex']),2); echo "Genstande: $genstande = $promille promille<br />"; } } ?> <html> <head> <title>Promiller</title> </head> <body> <form action="" method="post"> <p>Vægt: <input type="text" name="kg" size="4" /> kg.</p> <p> M <input type="radio" name="sex" value="0.68" /> K <input type="radio" name="sex" value="0.55" /></p> <p><input type="submit" name="submit" value="Send" /></p> </form> </body> </html>
27. oktober 2004 - 15:26
#2
Lige en enkelt validering, så vi sikrer os at kg er udfyldt: <?php if (isset($_POST['submit'])) { if (empty($_POST['kg'])) { die ('Du skal udfylde kg!'); } $kg = (float) str_replace(',','.',$_POST['kg']); $genstande = 0; $promille = 0; while ($promille<5) { $genstande++; $promille = round((12*$genstande)/($kg*$_POST['sex']),2); echo "Genstande: $genstande = $promille promille<br />"; } } else { ?> <html> <head> <title>Promiller</title> </head> <body> <form action="" method="post"> <p>Vægt: <input type="text" name="kg" size="5" /> kg.</p> <p> M <input type="radio" name="sex" value="0.68" checked="checked" /> K <input type="radio" name="sex" value="0.55" /></p> <p><input type="submit" name="submit" value="Send" /></p> </form> </body> </html> <?php }?>
27. oktober 2004 - 16:42
#3
Fedt, men kan du ikke lave en dropdown, i stedet for radioknapper, og så lade det man skal udfylde blive, sådan at man kan teste flere gange, uden at skulle trykke "tilbage" hver gang? På forhånd tak!
27. oktober 2004 - 16:50
#4
Ok, her er det så osse lavet det i en tabel: <?php $form_sendt = false; if (isset($_POST['submit'])) { $form_sendt = true; if (empty($_POST['kg'])) { $out = "<p style='color:red'>Du skal udfylde kg!</p>\n"; $out .= "<p><input style='background-color:#99FFFF;margin-left: 20px;' type='button' value='Tilbage' onClick='history.back()'></p>"; } else { $out = "<table><thead><tr><th>Genstande</th><th>Promille</th></tr></thead><tbody>\n"; $kg = (float) str_replace(',','.',$_POST['kg']); $genstande = 0; $promille = 0; while ($promille<5) { $genstande++; $promille = number_format((12*$genstande)/($kg*$_POST['sex']),2,',','.'); $out .= "<tr><td>$genstande</td><td>$promille</td><tr>\n"; } $out .= "</tbody></table>\n"; } } ?> <html> <head> <title>Promiller</title> <style type="text/css"> table { border-collapse: collapse; } th { border: thin solid blue; padding: 1px 5px 1px 5px; } td{ border: thin solid red; text-align: right; } </style> </head> <body> <form action="" method="post"> <p>Vægt: <input type="text" name="kg" size="5" /> kg.</p> <p><label for="sex">Køn</label> <select name="sex" id="sex"> <option value="0.68" checked="checked" /> Mand </option> <option value="0.55" /> Kvinde </option> </select> </p> <p><input type="submit" name="submit" value="Send" /></p> </form> <?php if ($form_sendt === true) echo $out;?> </body> </html>
27. oktober 2004 - 16:51
#5
Og du behøver jo så ikke en 'Tilbage' knap, så fjern denne linje: $out .= "<p><input style='background-color:#99FFFF;margin-left: 20px;' type='button' value='Tilbage' onClick='history.back()'></p>";
27. oktober 2004 - 17:10
#6
Tak, kan du lave en ekstra række, hvor der står: Promille på 5 eller over = død Og så markere det promille tal der er 5 eller der over med rød?
27. oktober 2004 - 17:34
#7
Jeg er ikke sikker på hvad du mener med en ekstra række, men du lave en if betingelse i denne løkke: while ($promille<5) { $genstande++; $promille = number_format((12*$genstande)/($kg*$_POST['sex']),2,',','.'); if ($promille<5) $out .= "<tr><td>$genstande</td><td>$promille</td><tr>\n"; else $out .= "<tr><td>$genstande</td><td style='color:red;'>Død $promille</td><tr>\n"; }
27. oktober 2004 - 17:37
#8
Eller måske sådan: while ($promille<5) { $genstande++; $promille = number_format((12*$genstande)/($kg*$_POST['sex']),2,',','.'); if ($promille<5) $out .= "<tr><td>$genstande</td><td>$promille</td><tr>\n"; else $out .= "<tr><td style='text-align:center;'>Død</td><td style='color:red;'>$promille</td><tr>\n"; }
28. oktober 2004 - 14:00
#9
altså en <tr><td></td><td>En promille over 5 = død</td></tr>
28. oktober 2004 - 15:31
#10
det er fint, men jeg synes
28. oktober 2004 - 15:33
#11
Tak for hjælpen..
29. oktober 2004 - 22:35
#13
Velbekommen.
Vi tilbyder markedets bedste kurser inden for webudvikling