22. maj 2010 - 03:50 Der er 5 kommentarer og
1 løsning

Brug en SELECT box onChange-rutine til flere Select-bokse..

HEJ,

Jeg har en tabel med fast 4 kolonner men med variabelt antal rækker.

I kolonne 1 placerer jeg et (vare-) billede. I kolonne 2 placerer jeg en tekst (vare-tittel). I kolonne 3 anbringer jeg en selectbox (interval 1- 10 (1 er "pre-selected). I kolonne 4 anbringer jeg en pris.

Prisen i kolonne 4 afhænger af antallet valgt i selectboksen i kolonne 3 (altså værdien i kolonne 4 er direkte proportional med værdien i selectboks-feltet i kolonne 3). 

Da prisberegningen for alle rækker vil være ens (de eneste 2 variable er selectboksens Navn og eller ID og værdien i kolonne 4), kunne jeg tænke mig en selectboks OnChange funktion (eller noget andet), som henter selectboksens navn / id ind som variabel1 (V1), henter prisen i samme rækkes kolonne 4 ind som variabel V2, beregner den nye pris og placerer den i kolonne 4 på aktuelle række.

MIne forløbige eksperimenter med selctbokse har vist at jeg ikke håndterer den kunst særlig godt, så jeg må spørge eksperterne om hjælp ??

Kristian
Avatar billede majbom Novice
22. maj 2010 - 10:50 #1
når du genererer din rækker, kunne du bruge en tæller, så hver række har et unikt nummer:

<tr><td>billede</td><td>titel</td><td><select onchange="changePrice('1', this, '14,95');" name="amount_1" id="amount_1"><option value="1" selected>1</option><option value="2">2</option><option value="3">3</option></td><td><input type="readonly" name="price_1" id="price_1" value="14,95"></td></tr>
<tr><td>billede</td><td>titel</td><td><select onchange="changePrice('2', this, '399,95');" name="amount_2" id="amount_2"><option value="1" selected>1</option><option value="2">2</option><option value="3">3</option></td><td><input type="readonly" name="price_2" id="price_2" value="399,95"></td></tr>
<tr><td>billede</td><td>titel</td><td><select onchange="changePrice('3', this, '749,50');" name="amount_3" id="amount_3"><option value="1" selected>1</option><option value="2">2</option><option value="3">3</option></td><td><input type="readonly" name="price_3" id="price_3" value="749,50"></td></tr>



<script type="text/javascript">
  function changePrice(intLineId, objSelect, fltPrice){
      var objPriceField = document.getElementById('price_'+intLineId);
      var intAmount = parseFloat(objSelect.value);
      var fltTotalPrice = parseFloat(fltPrice.replace(',', '.') * intAmount);
      var strTotalPrice = fltTotalPrice.toFixed(2)+'';
      strTotalPrice.replace('.', '.');
      objPriceField.value = strTotalPrice;
  }
</script>


burde gøre tricket...
Avatar billede majbom Novice
04. november 2010 - 13:41 #2
kunne det bruges?
04. november 2010 - 16:14 #3
HEJ,

På dit direkte spørgsmål eer svaret 'NEJ', men det er nu en sandhed med modifikationer, fordi det satte tænkeren i gang (og det r vel også formålet ??), så efter nogen bøvlen og biksen og dyre rynker og meget JAVA (den drikkelige art) løste jeg problemet, rynkene forsvant, konen begynte at tale pænt til mig igen (ja selv ungerne kendte deres papa ) og det endte i fryd og gammen.


så drop et svar --> TAK og POINT .

KRistian
Avatar billede majbom Novice
04. november 2010 - 16:28 #4
jamen det kommer da her så og godt at høre at livet kom på rette spor igen ;)
Avatar billede majbom Novice
04. november 2010 - 16:29 #5
prøver igen
Avatar billede majbom Novice
04. november 2010 - 22:03 #6
tfp :)
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