Avatar billede bkb12071 Nybegynder
08. januar 2009 - 22:50 Der er 5 kommentarer og
1 løsning

variabler i listbox

hejsa...jeg har et lille problem med en listbox...
<select name="prima" id="prima">
  <option value="1" SELECTED>1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>
se den er god nok....men jeg skal have lavet en beregning hvor at hvis value = 1 så skal variablen være fx. 0.8
så ledes at min score bliver multipliceret med 0.8
jeg har derfor en udregning der hedder :
$score = $age * $prima ; -----hvor $age er en variabel som folk selv taster ind.
mit problem er bare at den kun vil multiplicere med 1-2-3 eller 4! kan dette lade gøre at lave om??

venligst
Avatar billede hypofysen Nybegynder
08. januar 2009 - 23:41 #1
<form action='test.php' method="post">
<input type="text" name="alder">
<select name="prima" id="prima">
  <option value="1" SELECTED>1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>
<input type="submit" name="submit" value="submit">
</form>

<?php
if(isset($_POST['submit'])){
    $age = $_POST['alder'];
    $prima = $_POST['prima'];
   
    if($_POST['prima']){
        if($_POST['prima'] == 1){
        $prima = 0.8;
        };
   
$score = $age * $prima ;
echo $score;
    };
};
?>
Avatar billede majbom Novice
09. januar 2009 - 06:54 #2
skal den så være 1,6 hvis man vælger 2?
2,4 hvis man vælger 3 osv.?
Avatar billede jakobdo Ekspert
09. januar 2009 - 07:23 #3
Hvad er prima til ?
Hvis en bruger indtaster 1 hvad skal resultatet så være ?
2 ?
3 ?
10 ?
20 ?

osv...

Kom med lidt mere input.
Avatar billede foo85 Novice
09. januar 2009 - 08:49 #4
Du kan selvfølgelig lave en lille case sætning der fikser det.
switch ($_POST['prima']) {
case "1": //1 er valgt i listen
  $prima2 = 0.8;
break;
case "2": //2 er valgt i listen
  $prima2 = 5;
break;
case "3": //3 er valgt i listen
  $prima2 = Pi;
break;
case "4": //4 er valgt i listen
  $prima2 = 7*10^5;
break;
default:
  $prima2 = 0;
}
Den metode er god hvis det er nogle "tilfældige" værdier der skal antages alt efter om der vælges 1 eller 4, samtidig kan man give den midlertidige variabel en "fejl-værdi" hvis der ikke vælges noget i listen.
Er det en fast faktor der skal ganges på så kan det gøres nemmere.
$prima2 = $_POST['prima'] * <faktor>;
Avatar billede bkb12071 Nybegynder
09. januar 2009 - 19:38 #5
att: Foo85...
tak for din løsning den duede bare!!!..


og til jakobdo.....info...deter til en beregner til et mindre trykkeri hvor man online kan bestille diverse produkter!

Venligst
Avatar billede foo85 Novice
10. januar 2009 - 11:41 #6
bkb12071 >>
Godt at høre :)
Du kan udvide din "fejlsikring" ved at sætte en redirect header ind i default, så den sender brugeren tilbage hvis han ikke vælger noget i listen...
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