Avatar billede diablo925 Nybegynder
17. januar 2013 - 09:41 Der er 7 kommentarer

loop i javascript og php

jeg er igang med at lave noget til et fakture system blot for at prøve men er løbet ind i et problem

lavet det sådan så man kan trykke på et link og så add man flere tekst felter frem man kan skrive i

men skal så have lavet en hvor den regner pris og antal ud og giver en total det virker med den første

function sum() {
var x = document.getElementById('cost').value;
var y = document.getElementById('amount').value;
var total = parseFloat(x) * parseFloat(y);
document.getElementById("total").value = total;
}

<tr> 
        <td> <input type="text" name="produkt[]" value="" size="30"></td>
        <td> <input type="text" name="pris[]" value="" id="cost" onchange="sum();" size="10"></td> 
        <td> <input type="text" name="antal[]" value="" id="amount"  onchange="sum();" size="5"></td>
        <td> <input type="text" name="total[]" value="" id="total" size="10" readonly="readonly"></td> 
    </tr> 
    <tr>
        <td colspan="4"><textarea name="linkdesc[]" cols="50" rows="2" ></textarea> </td> 
    </tr> 

men hvis jeg trykker på mit link så den laver en ny line hvor jeg kan skrive virker det ikke at den kan regne det ud for mig

det er sikker noget med loop men ved ikke hvorden den skal skrives nogle som kan hjælpe mig
Avatar billede olebole Juniormester
17. januar 2013 - 14:24 #1
<ole>

Hvordan tilføjer du ekstra felter? Prøv at lægge et link til siden - eller et tilsvarende eksempel

/mvh
</bole>
Avatar billede diablo925 Nybegynder
17. januar 2013 - 14:33 #2
java script til at lave nye felter

var ct = 1; 
     
    function new_link() 
    { 
        ct++; 
        var div1 = document.createElement('div'); 
        div1.id = ct; 
     
        // link to delete extended form elements 
        var delLink = '<div style="text-align:right;margin-right:65px"><a href="java script:delIt('+ ct +')">Del</a></div>'; 
     
        div1.innerHTML = document.getElementById('newlinktpl').innerHTML + delLink; 
     
        document.getElementById('newlink').appendChild(div1); 
     
    } 
    // function to delete the newly added set of elements 
    function delIt(eleId) 
    { 
        d = document; 
     
        var ele = d.getElementById(eleId); 
     
        var parentEle = d.getElementById('newlink'); 
     
        parentEle.removeChild(ele); 
     
    }

den del der bliver tilføjet

<div id="newlinktpl" style="display:none"> 
<div> 
<table border=0> 
    <tr> 
        <td> <input type="text" name="produkt[]" value="" size="30"></td>
        <td> <input type="text" name="pris[]" value="" id="cost" onchange="sum();" size="10"></td> 
        <td> <input type="text" name="antal[]" value="" id="amount" onchange="sum();" size="5"></td>
        <td> <input type="text" name="total[]" value="" id="total" size="10" readonly="readonly"></td> 
    </tr> 
    <tr>
        <td colspan="4"><textarea name="linkdesc[]" cols="50" rows="2" ></textarea> </td> 
    </tr> 
</table> 
</div> 
</div>
Avatar billede olebole Juniormester
17. januar 2013 - 15:04 #3
Det script tilføjer ikke noget. Prøv at lægge et link i stedet
Avatar billede diablo925 Nybegynder
17. januar 2013 - 15:24 #4
Avatar billede olebole Juniormester
17. januar 2013 - 16:04 #5
Du kan jo ikke have flere elementer med samme ID. En ID skal være unik på dokumentniveau. Du er nødt til at skifte ID på de elementer, du sætter ind - og indrette din beregningsfunktion derefter
Avatar billede diablo925 Nybegynder
17. januar 2013 - 16:22 #6
det er derfor om man kan lave et loop med tal sådan så de bliver forskellige de ID eller om man kan gøre et eller andet
Avatar billede olebole Juniormester
17. januar 2013 - 21:20 #7
Du kunne helt undlade ID'er og i stedet bruge document.getElementsByName, som returnerer et array af elementer med det søgte navn. Så er det bare at loop'e igennem dine arrays og udføre beregningen
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