Avatar billede -kenner- Nybegynder
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.
Avatar billede detox Nybegynder
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>
Avatar billede detox Nybegynder
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
}?>
Avatar billede -kenner- Nybegynder
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!
Avatar billede detox Nybegynder
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>
Avatar billede detox Nybegynder
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>";
Avatar billede -kenner- Nybegynder
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?
Avatar billede detox Nybegynder
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";
        }
Avatar billede detox Nybegynder
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";
        }
Avatar billede -kenner- Nybegynder
28. oktober 2004 - 14:00 #9
altså en <tr><td></td><td>En promille over 5 = død</td></tr>
Avatar billede -kenner- Nybegynder
28. oktober 2004 - 15:31 #10
det er fint, men jeg synes
Avatar billede -kenner- Nybegynder
28. oktober 2004 - 15:33 #11
Tak for hjælpen..
Avatar billede -kenner- Nybegynder
29. oktober 2004 - 16:10 #12
Vil du hjælpe mig med endnu et PHP spørgsmål?

Hvis, så er det på:

http://www.eksperten.dk/spm/555514
Avatar billede detox Nybegynder
29. oktober 2004 - 22:35 #13
Velbekommen.
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