Avatar billede nyst Nybegynder
11. juni 2004 - 10:47 Der er 41 kommentarer og
1 løsning

sende svartekst alt efter talværdi

Hi there,
jeg vil gerne have denne til at sende svartekst retur alt efter talværdiens størrelse.

<?php
session_start();

if(isset($_POST['BMI'])) {
  if(isset($_POST['vkg']) && $_POST['hcm'] != 0) {
    $vkg = $_REQUEST["vkg"];
    $hcm = $_REQUEST["hcm"];
        $vkg = str_replace(",",".",$vkg);       
    $bmi = round((($vkg / ($hcm * $hcm)) * 10000), 1);
    $_SESSION['bmi'] = $bmi;
    header('location:'.$_SERVER['HTTP_REFERER']);
    exit;
  } else {
    $_SESSION['bmi'] = ("Fejl!");
    header('location:'.$_SERVER['HTTP_REFERER']);
  }
}
?>

tekst som følger:

værdi under 18,5 > undervægt
18,5 - 24,9 > normalvægt
25,0 - 29,9 > overvægt
30,0 - 34,9 > svær overvægt
35,0 - 40,0 > fedme
over 40,0 > ekstrem fedme

den skal så retunere både udregning som og under denne den tekst som svarer til værdi.

:-)
Avatar billede nyst Nybegynder
11. juni 2004 - 10:51 #1
retur teksten skal stå under

<?php
if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0") {
  echo "<b>".$_SESSION['bmi']."</b>";
}
?>
Avatar billede jaw Nybegynder
11. juni 2004 - 10:51 #2
if($_SESSION['bmi'] < 18,5) { echo"undervægt"; }
elseif (18,6 > $_SESSION['bmi'] > 24,9) {echo "normalvægt";}
elseif (25 > $_SESSION['bmi'] > 29,9) {echo "overvægt";}

Og så fremdeles... Der var vist noget med, at den tog punktum i stedet for komma ikke? Så kan det være, du skal skrive punktum i stedet for mine komma'er...
Avatar billede jaw Nybegynder
11. juni 2004 - 10:52 #3
De skal da vist lige vendes om:

if($_SESSION['bmi'] < 18,5) { echo"undervægt"; }
elseif (18,6 < $_SESSION['bmi'] < 24,9) {echo "normalvægt";}
elseif (25 < $_SESSION['bmi'] < 29,9) {echo "overvægt";}
Avatar billede nyst Nybegynder
11. juni 2004 - 10:55 #4
er det så i beregn eller udregn-filen det skal stå
Avatar billede jaw Nybegynder
11. juni 2004 - 10:55 #5
Jeg ændrer lige igen :) Smed det lige til test, og det her ser ud til at funke:

if($_SESSION['bmi'] < 18.5) { echo"undervægt"; }
elseif (18.6 < $_SESSION['bmi'] && $_SESSION['bmi'] < 24.9) {echo "normalvægt";}
elseif (25 < $_SESSION['bmi'] && $_SESSION['bmi'] < 29.9) {echo "overvægt";}
Avatar billede dennismp Nybegynder
11. juni 2004 - 10:55 #6
der er ikke nogen behov for at "gentage sig selv", da de forskellige if() sætning udlukker hinanden.. så dette burde være nok

if($_SESSION['bmi'] <= 18,5) { echo"undervægt"; }
elseif ( $_SESSION['bmi'] <= 24,9) {echo "normalvægt";}
elseif ( $_SESSION['bmi'] <= 29,9) {echo "overvægt";}
...

desuden mener jeg ikke du kan gøre x > y > z ..

x > y vil evaluerer til true.. true > z .. giver ikke mening :)
Avatar billede nyst Nybegynder
11. juni 2004 - 10:56 #7
den skal stadig give dette talsvar

echo "<b>".$_SESSION['bmi']."</b>";

er det så herefter jeg laver en ekstra if
Avatar billede jaw Nybegynder
11. juni 2004 - 10:56 #8
Nej dennis, det var det jeg kom i tanke om :) Og ja, din er nok mere simpel end mig...
Avatar billede jaw Nybegynder
11. juni 2004 - 10:58 #9
Ja, det kan du sagtens... Eller bare i hver echo: echo "Din værdi er: $_SESSION['bmi'] så du er overvægtig!";
Avatar billede nyst Nybegynder
11. juni 2004 - 11:06 #10
denne går der ged i:

<?php
session_start();

if(isset($_POST['BMI'])) {
  if(isset($_POST['vkg']) && $_POST['hcm'] != 0) {
    $vkg = $_REQUEST["vkg"];
    $hcm = $_REQUEST["hcm"];
        $vkg = str_replace(",",".",$vkg);       
    $bmi = round((($vkg / ($hcm * $hcm)) * 10000), 1);
    $_SESSION['bmi'] = $bmi;
            if($_SESSION['bmi'] <= 18,5) { echo"undervægt"; }
            elseif ( $_SESSION['bmi'] <= 24,9) {echo "normalvægt";}
            elseif ( $_SESSION['bmi'] <= 29,9) {echo "overvægt";}
            elseif ( $_SESSION['bmi'] <= 34,9) {echo "svær overvægt";}
            elseif ( $_SESSION['bmi'] <= 39,9) {echo "fedme";}
            elseif ( $_SESSION['bmi'] >= 40,0) {echo "ekstrem fedme";}
        header('location:'.$_SERVER['HTTP_REFERER']);
        exit;
  }
    else {
    $_SESSION['bmi'] = ("Fejl!");
    header('location:'.$_SERVER['HTTP_REFERER']);
  }
}
?>
Avatar billede nyst Nybegynder
11. juni 2004 - 11:06 #11
fejl i linie:

if($_SESSION['bmi'] <= 18,5) { echo"undervægt"; }
Avatar billede nyst Nybegynder
11. juni 2004 - 11:11 #12
har indsat
$hcm = str_replace(",",".",$hcm);
efter
$vkg = str_replace(",",".",$vkg);
Avatar billede jaw Nybegynder
11. juni 2004 - 11:15 #13
det skal bare være punktum - altså:
if($_SESSION['bmi'] <= 18.5) {echo"undervægt";}
Avatar billede nyst Nybegynder
11. juni 2004 - 11:16 #14
sætter jeg den på den anden side (resultatsiden)

<?php
if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0") {
  echo "<b>".$_SESSION['bmi']."</b><br>";
                if($_SESSION['bmi'] <= 18,5) { echo"undervægt"; }
            elseif ( $_SESSION['bmi'] <= 24,9) {echo "normalvægt";}
            elseif ( $_SESSION['bmi'] <= 29,9) {echo "overvægt";}
            elseif ( $_SESSION['bmi'] <= 34,9) {echo "svær overvægt";}
            elseif ( $_SESSION['bmi'] <= 39,9) {echo "fedme";}
            elseif ( $_SESSION['bmi'] >= 40,0) {echo "ekstrem fedme";}
}
?>

er der også fejl i

if($_SESSION['bmi'] <= 18,5) { echo"undervægt"; }
Avatar billede jaw Nybegynder
11. juni 2004 - 11:17 #15
det skal være punktum - ikke komma
Avatar billede nyst Nybegynder
11. juni 2004 - 11:19 #16
så kommer den med

normalvægt
Warning: Cannot add header information - headers already sent by (output started at /bmi_udregn.php:13) in /bmi_udregn.php on line 18

på blank side
Avatar billede nyst Nybegynder
11. juni 2004 - 11:20 #17
den nye if er nu på tilbage på beregnersiden
Avatar billede jaw Nybegynder
11. juni 2004 - 11:21 #18
Det må du så lige paste, og hvorfor har du smidt det på beregner-siden? Der kan man jo ikke se det - du havde da lavet det fint i det du pastede 11:16:31
Avatar billede nyst Nybegynder
11. juni 2004 - 11:21 #19
kan det ikke være fordi den retunere bmi først og at de andre 'tekster' også hedder bmi
Avatar billede jaw Nybegynder
11. juni 2004 - 11:22 #20
Nej, for du checker jo bare indholdet af $_SESSION['bmi'] - og den fejl du får, er en headers fejl, og du har ingen headers i det du har pastet
Avatar billede nyst Nybegynder
11. juni 2004 - 11:24 #21
jaw>>

jamen det funker jo
Avatar billede jaw Nybegynder
11. juni 2004 - 11:25 #22
Erh, jamen så er der vel ingen problemer? :)
Avatar billede nyst Nybegynder
11. juni 2004 - 11:26 #23
kan jeg sætte den nye if i en andn <td> ved at bare skrive <?php if osv ?>
Avatar billede jaw Nybegynder
11. juni 2004 - 11:27 #24
ja, det skulle du jo nok kunne
Avatar billede nyst Nybegynder
11. juni 2004 - 11:29 #25
næe så kommer den med svar når siden kaldes
Avatar billede nyst Nybegynder
11. juni 2004 - 11:30 #26
den viser tekst - undervægt
Avatar billede jaw Nybegynder
11. juni 2004 - 11:30 #27
jeg ved ikke helt hvad du mener desværre
Avatar billede nyst Nybegynder
11. juni 2004 - 11:31 #28
<tr>
<td><input type="submit" name="BMI" value="BMI" style="font-size : 9px;"></td>
<td>
<?php
if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0") {
  echo "<b>".$_SESSION['bmi']."</b><br>";

}
?>
</td>
</tr>
<tr>
<td colspan="2">
<?php
                if($_SESSION['bmi'] <= 18.5) { echo"undervægt"; }
            elseif ( $_SESSION['bmi'] <= 24.9) {echo "normalvægt";}
            elseif ( $_SESSION['bmi'] <= 29.9) {echo "overvægt";}
            elseif ( $_SESSION['bmi'] <= 34.9) {echo "svær overvægt";}
            elseif ( $_SESSION['bmi'] <= 39.9) {echo "fedme";}
            elseif ( $_SESSION['bmi'] >= 40.0) {echo "ekstrem fedme";}   
?>
</td>
</tr>

dette giver 'undervægt' når siden kaldes - den skal jo ikke vise noget når siden kaldes kun når der beregnes
Avatar billede jaw Nybegynder
11. juni 2004 - 11:34 #29
Ahhh... Prøv:

<tr>
<td><input type="submit" name="BMI" value="BMI" style="font-size : 9px;"></td>
<td>
<?php
if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0") {
  echo "<b>".$_SESSION['bmi']."</b><br>";

}
?>
</td>
</tr>
<tr>
<td colspan="2">
<?php
          if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0") {
            if($_SESSION['bmi'] <= 18.5) { echo"undervægt"; }
            elseif ( $_SESSION['bmi'] <= 24.9) {echo "normalvægt";}
            elseif ( $_SESSION['bmi'] <= 29.9) {echo "overvægt";}
            elseif ( $_SESSION['bmi'] <= 34.9) {echo "svær overvægt";}
            elseif ( $_SESSION['bmi'] <= 39.9) {echo "fedme";}
            elseif ( $_SESSION['bmi'] >= 40.0) {echo "ekstrem fedme";}   
          }
?>
</td>
</tr>
Avatar billede nyst Nybegynder
11. juni 2004 - 11:36 #30
hvis jeg submitter uden at indsætte tal kommer den rigtigt nok med 'fejl' men så også derunder undervægt???
Avatar billede jaw Nybegynder
11. juni 2004 - 11:39 #31
<tr>
<td><input type="submit" name="BMI" value="BMI" style="font-size : 9px;"></td>
<td>
<?php
if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0") {
  echo "<b>".$_SESSION['bmi']."</b><br>";

}
?>
</td>
</tr>
<tr>
<td colspan="2">
<?php
          if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0" && $_SESSION['bmi'] != "Fejl!") { // 'fejl ' skal stå præsis som den returnerer det
            if($_SESSION['bmi'] <= 18.5) { echo"undervægt"; }
            elseif ( $_SESSION['bmi'] <= 24.9) {echo "normalvægt";}
            elseif ( $_SESSION['bmi'] <= 29.9) {echo "overvægt";}
            elseif ( $_SESSION['bmi'] <= 34.9) {echo "svær overvægt";}
            elseif ( $_SESSION['bmi'] <= 39.9) {echo "fedme";}
            elseif ( $_SESSION['bmi'] >= 40.0) {echo "ekstrem fedme";}   
          }
?>
</td>
</tr>
Avatar billede jaw Nybegynder
11. juni 2004 - 11:40 #32
Måske bedre:

if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0" && is_numeric($_SESSION['bmi']))
Avatar billede nyst Nybegynder
11. juni 2004 - 11:45 #33
det virkede skisme men hvad betyder den sidste du satte ind

is_numeric

og så point :-)
Avatar billede jaw Nybegynder
11. juni 2004 - 11:46 #34
is_numeric() checker om værdien indenfor () er tal :) Og du valgte jo Dennismp's forslag...
Avatar billede nyst Nybegynder
11. juni 2004 - 11:48 #35
takker men jeg syntes nu nok det var dig der har arbejdet mest!!!
Avatar billede jaw Nybegynder
11. juni 2004 - 11:48 #36
hehe, det kan vi jo altid diskutere... Men her er et svar så, bare dennis også får lidt :)
Avatar billede nyst Nybegynder
11. juni 2004 - 11:51 #37
så må jeg jo lige vente til dennis kommer med svar ellers kan jeg jo ikke dele*S*
Avatar billede nyst Nybegynder
11. juni 2004 - 11:52 #38
D E N N I S ! ! !
Avatar billede nyst Nybegynder
11. juni 2004 - 11:58 #39
tror du han kommer tilbage
Avatar billede jaw Nybegynder
11. juni 2004 - 12:02 #40
hehe, det ved jeg jo så ikke :) Kan jo give ham lidt tid, men i sidste ende er det selvf. dit valg...
Avatar billede nyst Nybegynder
11. juni 2004 - 12:05 #41
ham må så få flere en anden dag

Håber det er godt nok dennis ellers opretter jeg bare et ? til dig så du kan få points også

Ellers igen tak begge og god weekend.
Avatar billede jaw Nybegynder
11. juni 2004 - 12:08 #42
Tak, og i lige måde
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