Christian_ Skrevet 25. desember 2004 Forfatter Del Skrevet 25. desember 2004 ja.. gjorde det... testa rett etter at jeg posta her.. men i og med at jeg er nybegyner så vet jeg ikke om jeg kan gjøre det enklere eller har gjort noe som er feil... har nå forresten gjort ferdig hele scriptet: PHPSIDEN <?php $lengde = $_POST['lengde']; $ovelse = $_POST['ovelse']; $minutter = $_POST['minutter']; $sekunder = $_POST['sekunder']; $tiendeler = $_POST['tiendedeler']; if ($lengde == "femogtyve") { if ($ovelse == "femtifri") { $wr = 2129; } elseif ($ovelse == "hundrefri") { $wr = 4700; } elseif ($ovelse == "tohundrefri") { $wr = 10335; } elseif ($ovelse == "firehundrefri") { $wr = 21912; } elseif ($ovelse == "attehundrefri") { $wr = 45677; } elseif ($ovelse == "femtenhundrefri") { $wr = 87196; } elseif ($ovelse == "hundremedley") { $wr = 5297; } elseif ($ovelse == "tohundremedley") { $wr = 11582; } elseif ($ovelse == "firehundremedley") { $wr = 24615; } elseif ($ovelse == "femtirygg") { $wr = 2365; } elseif ($ovelse == "hundrerygg") { $wr = 5134; } elseif ($ovelse == "tohundrerygg") { $wr = 11229; } elseif ($ovelse == "femtibryst") { $wr = 2650; } elseif ($ovelse == "hundrebryst") { $wr = 5846; } elseif ($ovelse == "tohundrebryst") { $wr = 12689; } elseif ($ovelse == "femtifly") { $wr = 2286; } elseif ($ovelse == "hundrefly") { $wr = 5089; } elseif ($ovelse == "tohundrefly") { $wr = 11260; } } if ($lengde == "femti") { if ($ovelse == "femtifri") { $wr = 2187; } elseif ($ovelse == "hundrefri") { $wr = 4838; } elseif ($ovelse == "tohundrefri") { $wr = 10615; } elseif ($ovelse == "firehundrefri") { $wr = 22420; } elseif ($ovelse == "attehundrefri") { $wr = 46798; } elseif ($ovelse == "femtenhundrefri") { $wr = 89057; } elseif ($ovelse == "hundremedley") { $wr = 0; } elseif ($ovelse == "tohundremedley") { $wr = 11966; } elseif ($ovelse == "firehundremedley") { $wr = 25347; } elseif ($ovelse == "femtirygg") { $wr = 2529; } elseif ($ovelse == "hundrerygg") { $wr = 5422; } elseif ($ovelse == "tohundrerygg") { $wr = 11728; } elseif ($ovelse == "femtibryst") { $wr = 2756; } elseif ($ovelse == "hundrebryst") { $wr = 6057; } elseif ($ovelse == "tohundrebryst") { $wr = 13091; } elseif ($ovelse == "femtifly") { $wr = 2359; } elseif ($ovelse == "hundrefly") { $wr = 5224; } elseif ($ovelse == "tohundrefly") { $wr = 11539; } } $minuttregner = ($minutter * 60 * 100); $sekundregner = ($sekunder * 100); $oppnadregner = ($minuttregner + $sekundregner + $tiendeler); $oppnadd = $oppnadregner; $forste = ($wr/$oppnadd); $andre = ($forste * $forste * $forste); $tredje = ($andre * 1000); $resultat = floor($tredje); if(empty($sekunder)) { echo "du har ikke fylt ut alle feltene!"; } if(empty($tiendeler)) { echo "du har ikke fylt ut alle feltene!"; } else { echo "du har fått $resultat poeng"; } ?> og HTMLsiden <html> <head> </head> <body> <form method="post" action="phpside.php"> <fieldset> <legend>Svømmegreie</legend> <select name="lengde" size="1"> <option value="femogtyve">25m basseng</option> <option value="femti">50m basseng</option> </select><br /> <select name="ovelse" size="1"> <option value="femtifri">50 m fri</option> <option value="hundrefri">100m fri</option> <option value="tohundrefri">200m fri</option> <option value="firehundrefri">400m fri</option> <option value="attehundrefri">800m fri</option> <option value="femtenhundrefri">1500m fri</option> <option value="hundremedley">100m medley</option> <option value="tohundremedley">200m medley</option> <option value="firehundremedley">400m medley</option> <option value="femtirygg">50m rygg</option> <option value="hundrerygg">100m rygg</option> <option value="tohundrerygg">200m rygg</option> <option value="femtibryst">50m bryst</option> <option value="hundrebryst">100m bryst</option> <option value="tohundrebryst">200m bryst</option> <option value="femtifly">50m butterfly</option> <option value="hundrefly">100m butterfly</option> <option value="tohundrefly">200m butterfly</option> </select> <br /> <input type="text" name="minutter" value="Minutter" /><br /> <input type="text" name="sekunder" value="Sekunder" /><br /> <input type="text" name="tiendedeler" value="Tiendedeler" /><br /> <input type="submit" value="Kjør!" /> </fieldset> </form> </body> </html> kan sees her: LINK tusen takk for all hjep!! da har jeg fått laget mitt første script m.v.h Christian Lenke til kommentar
LoS Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 Tør jeg forslå bruken av switch() ? Blir sinnsykt mye penere kode hvis du bruker switch(). switch($ovelse) { case 'femtifri': $wr = 2187; break; case 'hundrefri': $wr = 4838; break; case 'tohundrefri': $wr = 10615; break; } osv. www.php.net/switch Lenke til kommentar
jorgis Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 (endret) Du kan korte det ned endel, ihvertfall: <?php $lengde = $_POST['lengde']; $ovelse = $_POST['ovelse']; $minutter = $_POST['minutter']; $sekunder = $_POST['sekunder']; $tiendeler = $_POST['tiendedeler']; if ($lengde == "femogtyve") { $wr = array('femtifri' => 2129, 'hundrefri' => 4700, 'tohundrefri' => 10335, 'firehundrefri' => 21912, 'attehundrefri' => 45677, 'femtenhundrefri' => 87196, 'hundremedley' => 5297, 'tohundremedley' => 11582, 'firehundremedley' => 24615, 'femtirygg' => 2365, 'hundrerygg' => 5134, 'tohundrerygg' => 11229, 'femtibryst' => 2650, 'hundrebryst' => 5864, 'tohundrebryst' => 12689, 'femtifly' => 2286, 'hundrefly' => 5089, 'tohundrefly' => 11260); } elseif ($lengde == "femti") { $wr = array('femtifri' => 2187, 'hundrefri' => 4838, 'tohundrefri' => 10615, 'firehundrefri' => 22420, 'attehundrefri' => 46798, 'femtenhundrefri' => 89057, 'hundremedley' => 0, 'tohundremedley' => 11966, 'firehundremedley' => 25347, 'femtirygg' => 2529, 'hundrerygg' => 5422, 'tohundrerygg' => 11728, 'femtibryst' => 2756, 'hundrebryst' => 6057, 'tohundrebryst' => 13091, 'femtifly' => 2359, 'hundrefly' => 5224, 'tohundrefly' => 11539); } $minuttregner = ($minutter * 60 * 100); $sekundregner = ($sekunder * 100); $oppnadregner = ($minuttregner + $sekundregner + $tiendeler); $oppnadd = $oppnadregner; $forste = ($wr["$ovelse"]/$oppnadd); $andre = ($forste * $forste * $forste); $tredje = ($andre * 1000); $resultat = floor($tredje); if(empty($sekunder)) { echo "du har ikke fylt ut alle feltene!"; } if(empty($tiendeler)) { echo "du har ikke fylt ut alle feltene!"; } else { echo "du har fått $resultat poeng"; } ?> LoS: Switch gir lettere lesbarhet på koden, men når det er snakk om resultater og relativt store datamengder er det like greit å bruke et array. if-else-ifelse er ihvertfall uaktuelt. btw: Hvorfor er hundremedley lik 0? Endret 25. desember 2004 av jorgis Lenke til kommentar
LoS Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 Ah, du tenkte lenger enn meg Lenke til kommentar
jorgis Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 Ah, du tenkte lenger enn meg Hehe. Jeg begynte egentlig å konstruere en hel haug med switch-case-greier, men gadd ikke mer når jeg kom halvveis, så jeg bare dyttet det over i et array istedenfor. Lenke til kommentar
Christian_ Skrevet 25. desember 2004 Forfatter Del Skrevet 25. desember 2004 btw: Hvorfor er hundremedley lik 0? fordi det ikke går ann å svømme 100m medley i et 50 m basseng du svømmer 25m av hver svømmeart og man kan ikke skifte svømmeart midt i et basseng.... så jeg skrev 0 der så får du summen null.... vet noen om en måte jeg kan skrive tekst som kommer opp hvis man velger 100m medley og 50 m basseng? Lenke til kommentar
jorgis Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 Du kan legge til nær slutten: if ($ovelse == 'hundremedley') { die('Går ikke an, din uvitende dott! :p '); } Lenke til kommentar
Christian_ Skrevet 25. desember 2004 Forfatter Del Skrevet 25. desember 2004 (endret) hvis jeg har html-siden inkludert i en annen side.. hvordan kan jeg da få svaret opp i samme inklude side når jeg trykker på submit..? og hva er koden for en knapp som nuller ut alle former? og hvordan kan jeg få en form som man kunn kan putte tall inni hvis ikke får man opp en feilmelding... Endret 25. desember 2004 av chs89 Lenke til kommentar
jorgis Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 Se litt på is_numeric(). <input type="reset" value="Trykk her for å nullstille" /> Lenke til kommentar
Christian_ Skrevet 25. desember 2004 Forfatter Del Skrevet 25. desember 2004 Se litt på is_numeric(). den skjekka om formen var nummeric, men jeg vil at den skal skjekke om den ikke er nummeric går det ann med samme funksjon? Lenke til kommentar
dabear Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 if(!is_numeric($var)) { } Lenke til kommentar
Christian_ Skrevet 25. desember 2004 Forfatter Del Skrevet 25. desember 2004 if(!is_numeric($var)) { } ah!! kom jo på at ! betyr ikke.. takk! men hva med den inkluderingen? hvordan kan jeg legge hele scriptet i en fil? og dem reset knappen.... den sletter alt innhold i select dropdownmenyene.. går det ann f.eks: <input type="reset: minutter, sekunder, tiendedeler" value="Trykk her for å nullstille" /> ?? slik at kun de tre blir nullstilt? Lenke til kommentar
jorgis Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 (endret) og dem reset knappen.... den sletter alt innhold i select dropdownmenyene.. går det ann f.eks: <input type="reset: minutter, sekunder, tiendedeler" value="Trykk her for å nullstille" /> ?? slik at kun de tre blir nullstilt? Nei, det er ikke mulig å spesifisere nøyaktig hva en reset-knapp skal resette, med mindre man putter noe i en egen form-tagg, noe som blir semantisk feil. Du får bare leve med det, eller hoppe over reset-knappen. HTML er et ganske restriktivt språk å drive på med i. men hva med den inkluderingen? hvordan kan jeg legge hele scriptet i en fil? Du endrer action i HTML-biten til f.eks. phpfil.php?sendt=1, slik at phpfilen kan finne ut om noe har blitt sendt. Så lager du filen phpfil.php, og setter den f.eks. opp slik: <?php if (!@$_GET['sendt']) { ?> HTML-filinnhold her <?php } elseif (@$_GET['sendt'] == 1) { //phpfilen her } ?> Endret 25. desember 2004 av jorgis Lenke til kommentar
Christian_ Skrevet 26. desember 2004 Forfatter Del Skrevet 26. desember 2004 (endret) ok.. fant ut av den med reseten måtte bare sette inn <option selected value''>tekst<option> så kom den opp når jeg nullstilte.. men jeg fikk ikke helt til det med å legge alt i en fil.. fikk bare opp alle meldingene samtidig.. Endret 26. desember 2004 av chs89 Lenke til kommentar
Andreaz_ Skrevet 26. desember 2004 Del Skrevet 26. desember 2004 God jobb... Nå kan jeg sjekke ut hvor mye poeng jeg får/har fått... husker bare på tidene jeg Lenke til kommentar
Christian_ Skrevet 26. desember 2004 Forfatter Del Skrevet 26. desember 2004 God jobb...Nå kan jeg sjekke ut hvor mye poeng jeg får/har fått... husker bare på tidene jeg [OT]Driver du med svømming?[/OT] [ON] Jeg kikket litt på noen andre skript f.eks mailskript så lå hele scriptet i en fil.. det var der jeg fikk ideen fra.. men går det ann å få svaret i samme include uten å ha det i en fil? [/ON] Lenke til kommentar
Christian_ Skrevet 27. desember 2004 Forfatter Del Skrevet 27. desember 2004 (endret) jeg har et par problemer nå.. Jeg skal lage en "5-siste med navn" funksjon som kjøres når en med navn vil ha poeng. og for å skrive til filen femsiste.txt gjør jeg slik: $gammelfil = implode("", file("femsiste.txt")); $fh = fopen("femsiste.txt", "w"); fwrite($fh, "<b>$navn</b> fikk $resultat poeng på øvelsen $ovelse<br />"); fwrite($fh, " \n $gammelfil"); fclose($fh); problemet er det at når det printes en ny score så skal den nye printes på toppen av fila og de gamle skal flyttes en linje ned.. altså: fila inneholder: ole fikk 600 poeng på sin 400m fri <br /> sten fikk 500 poeng på sin 50m fri <br /> og når en ny person legger til en tid så skal den legges i toppen av fila, uten at det andre blir slettet. den koden som jeg skrev over her gjør det men den lager ikke linjeskift i fila hva er galt med koden? PS! er det egentlig veldig enkelt å fikse så ikke mobb meg jeg er nybegynner Endret 27. desember 2004 av chs89 Lenke til kommentar
TorS Skrevet 27. desember 2004 Del Skrevet 27. desember 2004 If you are writing data to a txt file on a windows system and need a line break. use \r\n Mye rart som finnes i php-manualen... Den anbefales sterkt Lenke til kommentar
Christian_ Skrevet 27. desember 2004 Forfatter Del Skrevet 27. desember 2004 If you are writing data to a txt file on a windows system and need a line break. use \r\n Mye rart som finnes i php-manualen... Den anbefales sterkt hvor i php manualen står det?? fant det ikke? det funka iallefall takk! da er jeg kommet til det neste spørsmålet.... hvordan kan jeg printe ut de 5 øverse linjene i femsiste.txt har prøvd i php manualen men finner ikke det jeg leter etter.. Lenke til kommentar
racin Skrevet 27. desember 2004 Del Skrevet 27. desember 2004 Tja, er det noe slikt du mener: http://ylox.hopto.org/skriv.php Her er iallfall koden for den siden: <? // Skrive $filnavn = "klokke.txt"; $open = fopen($filnavn,"a+"); if (!fwrite($open, "klokken er ".date ("H:i:s d-m-y")."\r\n")) { die("Feil"); } else // Lese 5 siste ( Nyeste først ). { $file = file($filnavn); $nr = count($file); for ($x = $nr; $x+5 >= $nr; $x--) { echo $file[$x]."<br>"; } } fclose($open); ?> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå