09. december 2008 - 14:13
Der er
11 kommentarer og 1 løsning
lægge tal sammen fra form og via sessions give forskellige svar
Hi, jeg har en form <input name="vd1" type="text" size="2" maxlength="1"> <input name="vd2" type="text" size="2" maxlength="1"> osv til vd24 Denne submitter til en anden fil med en session som skal lægge tallene sammen og retunere værdien delt op i svar <?php session_start(); if(isset($_POST['tal'])) { if(isset($_POST['vd1']) && $_POST['vd2'] != 0) { $vd1 = $_REQUEST["vd1"]; $vd2 = $_REQUEST["vd2"]; $vd3 = $_REQUEST["vd3"]; $vd4 = $_REQUEST["vd4"]; $vd5 = $_REQUEST["vd5"]; $vd6 = $_REQUEST["vd6"]; $vd7 = $_REQUEST["vd7"]; $vd8 = $_REQUEST["vd8"]; $vd9 = $_REQUEST["vd9"]; $vd10 = $_REQUEST["vd10"]; $vd11 = $_REQUEST["vd11"]; $vd12 = $_REQUEST["vd12"]; $vd13 = $_REQUEST["vd13"]; $vd14 = $_REQUEST["vd14"]; $vd15 = $_REQUEST["vd15"]; $vd16 = $_REQUEST["vd16"]; $vd17 = $_REQUEST["vd17"]; $vd18 = $_REQUEST["vd18"]; $vd19 = $_REQUEST["vd19"]; $vd20 = $_REQUEST["vd20"]; $vd21 = $_REQUEST["vd21"]; $vd22 = $_REQUEST["vd22"]; $vd23 = $_REQUEST["vd23"]; $vd24 = $_REQUEST["vd24"]; $tal = (); $_SESSION['tal'] = $tal; header('location:'.$_SERVER['HTTP_REFERER']); exit; } else { $_SESSION['tal'] = ("Fejl!"); header('location:'.$_SERVER['HTTP_REFERER']); } } ?> som så retunere til forrige side <?php if(isset($_SESSION['tal']) && $_SESSION['tal'] != "0") { echo "<b>".$_SESSION['tal']."</b><br>"; } ?> og giver forskellige svar alt efter summen af tal <?php if(isset($_SESSION['tal']) && $_SESSION['tal'] != "0" && is_numeric($_SESSION['tal'])) { if($_SESSION['tal'] <= 24) { echo"svar 1"; } elseif ( $_SESSION['tal'] <= 37) {echo "svar 2";} elseif ( $_SESSION['tal'] <= 68) {echo "svar 3";} } ?> men kan skisme ikek helt få det til at virke. Session er valgt fordi siden hele siden ikke skal opdaterer men bare vise resulttatet ved klik. Kan nogen hjælpe mig videre?
Annonceindlæg fra Kingston Technology
09. december 2008 - 14:40
#1
Har du prøvet med $tal = $vd1 + $vd2
09. december 2008 - 14:49
#2
når jeg sætter denne ind i stedet for $tal = (); $tal = $vd1 + $vd2 + $vd3 + $vd4 + $vd5 + $vd6 + $vd7 + $vd8 + $vd9 + $vd10 + $vd11 + $vd12 + $vd13 + $vd14 + $vd15 + $vd16 + $vd17 + $vd18 + $vd19 + $vd20 + $vd21 + $vd22 + $vd23 + $vd24; giver den bare blank side måske det ligger i <?php if(isset($_SESSION['tal']) && $_SESSION['tal'] != "0") { echo "<b>".$_SESSION['tal']."</b><br>"; } ?>
09. december 2008 - 14:50
#3
eller denne som vel også skal ændres: if(isset($_POST['vd1']) && $_POST['vd2'] != 0) {
09. december 2008 - 14:50
#4
Kunne det tænkes du mangler en session_start() på ALLE sider ??
09. december 2008 - 14:59
#5
nej den nærmest skifter side men til samme adresse og retunere blank side *S*
09. december 2008 - 15:01
#6
ville yderligere godt have den til at tjekke at tallene kun er mellem 1 og 4 ellers fejlbesked samt at alle felter er udfyldt !
09. december 2008 - 15:14
#7
har nu fået den til at retunre tal og korrekt værdisvar, men har lidt problmer med at der kan tastets tal der ikke har værien mellem 1 og 4 samt tomt felt Kan man få den til at 'springe' ned til svaret - nu skal man scrolle ned for at se tallet ?
09. december 2008 - 15:46
#8
Jeg vil foreslå dig at gemme dine svar i et array i stedet for som nu i hver sin variabel. Det vil hjælpe dig meget. Du kan så løbe arrayet igennem og tjekke værdier. Ellers skal du måske ud i noget: $error = 0; for( $i = 1; $i < 25; $i++) { $svar = "vd" . $i; if( empty($$svar) || ( $$svar < 0 || $$svar > 4 ) ) { $error = 1; break; } } Hvis error så er 1 er alle felter ikke korrekt udfyldt.
11. december 2008 - 13:05
#9
hej dkfire, nu har jeg fået den til at virke, men vil lige spørge om du kan se om denne: if(isset($_POST['tal'])) { if(isset($_POST['vd1']) && $_POST['vd2'] != 0) { $vd1 = $_REQUEST["vd1"]; $vd2 = $_REQUEST["vd2"]; $vd3 = $_REQUEST["vd3"]; $vd4 = $_REQUEST["vd4"]; $vd5 = $_REQUEST["vd5"]; osv osv ikke skal laves lidt om, det er denne linje jeg mener: if(isset($_POST['vd1']) && $_POST['vd2'] != 0) { hvorfor () om første POST og ikke () om anden post og bør den så ikke fortsætte med alle vd'er. != 0 tjekker vel bare om det er et tal - ikke ? :-)
11. december 2008 - 13:07
#10
Der er () om den første POST, fordi der er i en isset() .. != 0 tjekker at den IKKE er lig med 0 ..
22. december 2008 - 17:25
#11
dkfire kommer du med et svar til points ???
22. december 2008 - 18:22
#12
Det gør jeg da gerne :-)
Vi tilbyder markedets bedste kurser inden for webudvikling