Avatar billede gtu Nybegynder
19. november 2009 - 14:25 Der er 2 kommentarer og
1 løsning

Regn rabat med flere input felter

Nedenstående kode virker som det skal.. men virker ikke når jeg tilføjer flere input felter.. Hvis jeg har 3 produkter så vil jeg gerne have rabat og pris input boks for hver produkt.

<input type="text"  name="rabat[]" onchange="test(event);">
<input type="text"  name="rabat_pris[]" value="1000">
<input type="hidden" name="pris[]" value="1000">

<input type="text"  name="rabat[]" onchange="test(event);">
<input type="text"  name="rabat_pris[]" value="1000">
<input type="hidden" name="pris[]" value="1000">

<input type="text"  name="rabat[]" onchange="test(event);">
<input type="text"  name="rabat_pris[]" value="1000">
<input type="hidden" name="pris[]" value="1000">


------------------------------------------
Virker

<html> <head>
<script type="text/javascript">
<!--
function test(e) {
var rabat = oForm.elements["rabat"].value;
var pris = oForm.elements["pris"].value;

  if (oForm.elements["rabat"].value.match(/%$/)){
   
    var len = rabat.length-1;
    rabat = rabat.substring(0, len);
   
    fpris = pris-( (pris*rabat)/100 );
    oForm.elements["rabat_pris"].value = fpris;
  } else {
    fpris = pris-rabat;
    oForm.elements["rabat_pris"].value = fpris;
  }
}
// -->
</script>
</head> <body> <form name="oForm">
<input type="text"  name="rabat" onchange="test(event);">
<input type="text"  name="rabat_pris" value="1000">
<input type="hidden" name="pris" value="1000">

</form> </body> </html>
Avatar billede tjens Nybegynder
19. november 2009 - 19:43 #1
Du skal have entydige navne i din form:
<form name="oForm">
        <input type="text"  name="rabat_1" onchange="test('1');">
        <input type="text"  name="rabatPris_1" value="1000" disabled=true>
        <input type="hidden" name="pris_1" value="1000">
      <br>
        <input type="text"  name="rabat_2" onchange="test('2');">
        <input type="text"  name="rabatPris_2" value="1000" disabled=true>
        <input type="hidden" name="pris_2" value="1000">
      <br>
        <input type="text"  name="rabat_3" onchange="test('3');">
        <input type="text"  name="rabatPris_3" value="1000" disabled=true>
        <input type="hidden" name="pris_3" value="1000">
    </form>

Og javascriptet skal så danne hele navnet selv:
function test(lin) {
  var rabat = document.oForm.elements["rabat_" + lin].value;
  var pris = document.oForm.elements["pris_" + lin].value;

  if (document.oForm.elements["rabat_" + lin].value.match(/%$/)){
   
    var len = rabat.length-1;
    rabat = rabat.substring(0, len);
   
    fpris = pris-( (pris*rabat)/100 );
    document.oForm.elements["rabatPris_" + lin].value = fpris;
  } else {
    fpris = pris-rabat;
    document.oForm.elements["rabatPris_" + lin].value = fpris;
  }
}
Avatar billede gtu Nybegynder
19. november 2009 - 20:06 #2
Det virker som det skal.. tak

men lige et spg mere, men det er godt nok PHP

Hvordan for jeg så det POST data over i et array i PHP?

Før brugte jeg bare $_POST['rabat_pris']; men det kan jeg vel ikke mere?
Avatar billede tjens Nybegynder
19. november 2009 - 20:43 #3
Du kan vel lave et loop med noget ala dette:
$rabat_pris[$i] = $_POST['rabatPris_' + i];
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