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. :-)
Annonceindlæg fra Deloitte
retur teksten skal stå under <?php if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0") { echo "<b>".$_SESSION['bmi']."</b>"; } ?>
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...
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";}
er det så i beregn eller udregn-filen det skal stå
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";}
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 :)
den skal stadig give dette talsvar echo "<b>".$_SESSION['bmi']."</b>"; er det så herefter jeg laver en ekstra if
Nej dennis, det var det jeg kom i tanke om :) Og ja, din er nok mere simpel end mig...
Ja, det kan du sagtens... Eller bare i hver echo: echo "Din værdi er: $_SESSION['bmi'] så du er overvægtig!";
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']); } } ?>
11. juni 2004 - 11:06
#11
fejl i linie: if($_SESSION['bmi'] <= 18,5) { echo"undervægt"; }
11. juni 2004 - 11:11
#12
har indsat $hcm = str_replace(",",".",$hcm); efter $vkg = str_replace(",",".",$vkg);
11. juni 2004 - 11:15
#13
det skal bare være punktum - altså: if($_SESSION['bmi'] <= 18.5) {echo"undervægt";}
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"; }
11. juni 2004 - 11:17
#15
det skal være punktum - ikke komma
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
11. juni 2004 - 11:20
#17
den nye if er nu på tilbage på beregnersiden
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
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
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
11. juni 2004 - 11:24
#21
jaw>> jamen det funker jo
11. juni 2004 - 11:25
#22
Erh, jamen så er der vel ingen problemer? :)
11. juni 2004 - 11:26
#23
kan jeg sætte den nye if i en andn <td> ved at bare skrive <?php if osv ?>
11. juni 2004 - 11:27
#24
ja, det skulle du jo nok kunne
11. juni 2004 - 11:29
#25
næe så kommer den med svar når siden kaldes
11. juni 2004 - 11:30
#26
den viser tekst - undervægt
11. juni 2004 - 11:30
#27
jeg ved ikke helt hvad du mener desværre
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
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>
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???
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>
11. juni 2004 - 11:40
#32
Måske bedre: if(isset($_SESSION['bmi']) && $_SESSION['bmi'] != "0" && is_numeric($_SESSION['bmi']))
11. juni 2004 - 11:45
#33
det virkede skisme men hvad betyder den sidste du satte ind is_numeric og så point :-)
11. juni 2004 - 11:46
#34
is_numeric() checker om værdien indenfor () er tal :) Og du valgte jo Dennismp's forslag...
11. juni 2004 - 11:48
#35
takker men jeg syntes nu nok det var dig der har arbejdet mest!!!
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 :)
11. juni 2004 - 11:51
#37
så må jeg jo lige vente til dennis kommer med svar ellers kan jeg jo ikke dele*S*
11. juni 2004 - 11:52
#38
D E N N I S ! ! !
11. juni 2004 - 11:58
#39
tror du han kommer tilbage
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...
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.
11. juni 2004 - 12:08
#42
Tak, og i lige måde
Vi tilbyder markedets bedste kurser inden for webudvikling