dodaje kolejne wiersze w fakturze . również oblicza dynamicznie wyniki w poszególnych wierszach jednak nie moge sobie poradzić z podliczeniem całej faktury zrobiłem pętle jednak coś z nią jest nie tak , przerabiałem na kilka sposobów i nie działa:
kod html
Kod
<textarea id="szablon" style="display:none;" cols="1" rows="1">
<tr id="wiersz_{0}">
<td>*</td>
<td><input type="text" size="3" name="imie[]"></td>
<td><input type="text" size="2" name="nazwisko[]"></td>
<td><input type="text" size="2" name="nr" value="odpowiedź domyślna"/></td>
<td><input type="text" size="2" id="ilosc{0}" onchange="oblicz({0},\'ilosc\')" name="dataw[]" value="1"/></td>
<td><input type="text" size="2" id="cena{0}" onchange="oblicz({0},\'cena\')" name="datax[]" value="1"/></td>
<td><input type="text" size="2" id="rabat{0}" name="nr" onchange="oblicz({0},\'rabat\')" value="2"/></td>
<td><input type="text" size="2" id="svat{0}" name="svat{0}" onchange="oblicz({0},\'svat\')" value="2"/></td>
<td><input type="text" size="2" id="netto{0}" name="netto{0}" onchange="oblicz({0},\'netto\')" value="2"/></td>
<td><input type="text" size="2" id="vat{0}" name="vat{0}" onchange="oblicz({0},\'vat\')" value="2"/></td>
<td><input type="text" size="2" id="brutto{0}" name="brutto{0}" onchange="oblicz({0},\'brutto\')" value="2"/></td>
<td><img src="http://antczak.org/source/dynamic_forms/12.png" id="usunOsobe_{0}" alt="usun"></td>
</tr>
</textarea>
<table id="listaOsob">
<thead>
<tr>
<th>Lp</th>
<th>Towar/Usługa</th>
<th>PKWiU</th>
<th>J.m.</th>
<th>Ilość</th>
<th>Cena netto</th>
<th>Rabat</th>
<th>Stawka Vat</th>
<th>Wartość netto</th>
<th>Wartość Vat</th>
<th>Wartość brutto</th>
<th>-</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="4">
<input type="submit" name="wyslij" value="Wyślij">
</th>
</tr>
</tfoot>
<tbody>
</tbody>
<tdown>
</tdown>
<img src="http://antczak.org/source/dynamic_forms/11.png" id="dodajOsobe" alt="dodaj">
</table>
<tr bgcolor="white"><td>* Pola obowiązkowe</td><td><input type="submit" name="licz" value="Zapisz"/></td><td><input type="submit" name="wroc" value="Anuluj"/></td></tr>
</form>
<tr id="wiersz_{0}">
<td>*</td>
<td><input type="text" size="3" name="imie[]"></td>
<td><input type="text" size="2" name="nazwisko[]"></td>
<td><input type="text" size="2" name="nr" value="odpowiedź domyślna"/></td>
<td><input type="text" size="2" id="ilosc{0}" onchange="oblicz({0},\'ilosc\')" name="dataw[]" value="1"/></td>
<td><input type="text" size="2" id="cena{0}" onchange="oblicz({0},\'cena\')" name="datax[]" value="1"/></td>
<td><input type="text" size="2" id="rabat{0}" name="nr" onchange="oblicz({0},\'rabat\')" value="2"/></td>
<td><input type="text" size="2" id="svat{0}" name="svat{0}" onchange="oblicz({0},\'svat\')" value="2"/></td>
<td><input type="text" size="2" id="netto{0}" name="netto{0}" onchange="oblicz({0},\'netto\')" value="2"/></td>
<td><input type="text" size="2" id="vat{0}" name="vat{0}" onchange="oblicz({0},\'vat\')" value="2"/></td>
<td><input type="text" size="2" id="brutto{0}" name="brutto{0}" onchange="oblicz({0},\'brutto\')" value="2"/></td>
<td><img src="http://antczak.org/source/dynamic_forms/12.png" id="usunOsobe_{0}" alt="usun"></td>
</tr>
</textarea>
<table id="listaOsob">
<thead>
<tr>
<th>Lp</th>
<th>Towar/Usługa</th>
<th>PKWiU</th>
<th>J.m.</th>
<th>Ilość</th>
<th>Cena netto</th>
<th>Rabat</th>
<th>Stawka Vat</th>
<th>Wartość netto</th>
<th>Wartość Vat</th>
<th>Wartość brutto</th>
<th>-</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="4">
<input type="submit" name="wyslij" value="Wyślij">
</th>
</tr>
</tfoot>
<tbody>
</tbody>
<tdown>
</tdown>
<img src="http://antczak.org/source/dynamic_forms/11.png" id="dodajOsobe" alt="dodaj">
</table>
<tr bgcolor="white"><td>* Pola obowiązkowe</td><td><input type="submit" name="licz" value="Zapisz"/></td><td><input type="submit" name="wroc" value="Anuluj"/></td></tr>
</form>
kody java i jq:
Kod
<script type="text/javascript">
$(document).ready(function(){
var i = 1;
var szablonWiersza = jQuery.format($("#szablon").val());
var ii = i++;
$(szablonWiersza(ii)).appendTo("#listaOsob tbody");
$("#usunOsobe_" + ii).click(function(){
$("#wiersz_" + ii).remove();
});
function dodajWiersz() {
var ii = i++;
$(szablonWiersza(ii)).appendTo("#listaOsob tbody");
$("#usunOsobe_" + ii).click(function(){
$("#wiersz_" + ii).remove();
});
}
$("#dodajOsobe").click(dodajWiersz);
});
</script>
<script type="text/javascript">
function Round(n, k) {
var factor = Math.pow(10, k+1);
n = Math.round(Math.round(n*factor)/10);
return n/(factor/10);
}
function oblicz(x,c) {
switch {
case \'ilosc\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wnettobezrabatu = (ilosc * cena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = Round(wnetto + wvat, 2);
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
var x = 1; //ustawia zmienna x na 1 zeby zaczelo pobierac od pierwsego wiersza
while (x<=5) // dopuki nie pobierze 5 koejnych warosci
{
var s = document.getElementById(\'netto\' + x); pobiera dane z formularza
x++;
wynik = s + wynik; //dodaje do wyniku pobraną wartosc
}
kolumna = document.getElementById(\'sumanetto\');
kolumna.innerHTML = wynik;
var dodaj = document.getElementById(\'sumanetto\');
dodaj.appendChild(kolumna);
break;
case \'cena\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wnettobezrabatu = (ilosc * cena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = wnetto + wvat;
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
break;
case \'rabat\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wnettobezrabatu = (ilosc * cena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = wnetto + wvat;
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
break;
case \'svat\':
break;
case \'netto\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wcena = netto / ilosc
var wnettobezrabatu = (ilosc * wcena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = wnetto + wvat;
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
document.getElementById(\'cena\' + x).value = wcena;
break;
case \'brutto\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wcena = brutto / ((svat/100)+1)
var wnettobezrabatu = (ilosc * wcena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = wnetto + wvat;
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
document.getElementById(\'cena\' + x).value = wcena;
break;
default:
}
}
</script>
$(document).ready(function(){
var i = 1;
var szablonWiersza = jQuery.format($("#szablon").val());
var ii = i++;
$(szablonWiersza(ii)).appendTo("#listaOsob tbody");
$("#usunOsobe_" + ii).click(function(){
$("#wiersz_" + ii).remove();
});
function dodajWiersz() {
var ii = i++;
$(szablonWiersza(ii)).appendTo("#listaOsob tbody");
$("#usunOsobe_" + ii).click(function(){
$("#wiersz_" + ii).remove();
});
}
$("#dodajOsobe").click(dodajWiersz);
});
</script>
<script type="text/javascript">
function Round(n, k) {
var factor = Math.pow(10, k+1);
n = Math.round(Math.round(n*factor)/10);
return n/(factor/10);
}
function oblicz(x,c) {
switch {
case \'ilosc\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wnettobezrabatu = (ilosc * cena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = Round(wnetto + wvat, 2);
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
var x = 1; //ustawia zmienna x na 1 zeby zaczelo pobierac od pierwsego wiersza
while (x<=5) // dopuki nie pobierze 5 koejnych warosci
{
var s = document.getElementById(\'netto\' + x); pobiera dane z formularza
x++;
wynik = s + wynik; //dodaje do wyniku pobraną wartosc
}
kolumna = document.getElementById(\'sumanetto\');
kolumna.innerHTML = wynik;
var dodaj = document.getElementById(\'sumanetto\');
dodaj.appendChild(kolumna);
break;
case \'cena\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wnettobezrabatu = (ilosc * cena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = wnetto + wvat;
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
break;
case \'rabat\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wnettobezrabatu = (ilosc * cena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = wnetto + wvat;
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
break;
case \'svat\':
break;
case \'netto\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wcena = netto / ilosc
var wnettobezrabatu = (ilosc * wcena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = wnetto + wvat;
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
document.getElementById(\'cena\' + x).value = wcena;
break;
case \'brutto\':
var ilosc = document.getElementById(\'ilosc\' + x).value;
var cena = document.getElementById(\'cena\' + x).value;
var rabat = document.getElementById(\'rabat\' + x).value;
var svat = document.getElementById(\'svat\' + x).value;
var netto = document.getElementById(\'netto\' + x).value;
var vat = document.getElementById(\'vat\' + x).value;
var brutto = document.getElementById(\'brutto\' + x).value;
var wcena = brutto / ((svat/100)+1)
var wnettobezrabatu = (ilosc * wcena);
var wnetto = wnettobezrabatu - (wnettobezrabatu *(rabat / 100));
var wvat = (wnetto * svat)/100;
var wbrutto = wnetto + wvat;
document.getElementById(\'netto\' + x).value = wnetto;
document.getElementById(\'vat\' + x).value = wvat;
document.getElementById(\'brutto\' + x).value = wbrutto;
document.getElementById(\'cena\' + x).value = wcena;
break;
default:
}
}
</script>
dodałem momentarze przy pentli która nie działa prosze o pomoc (kod został skrócony ponieważ nie mogłem wysłać posta
Chodzi o tą pętle
Kod
var x = 1; //ustawia zmienna x na 1 zeby zaczelo pobierac od pierwsego wiersza
while (x<=5) // dopuki nie pobierze 5 koejnych warosci
{
var s = document.getElementById(\'netto\' + x).value; //pobiera dane z formularza
x++;
wynik = s + wynik; //dodaje do wyniku pobraną wartosc
}
while (x<=5) // dopuki nie pobierze 5 koejnych warosci
{
var s = document.getElementById(\'netto\' + x).value; //pobiera dane z formularza
x++;
wynik = s + wynik; //dodaje do wyniku pobraną wartosc
}
sorki ale pierszy raz korzystam z forum o pomoc zawsze radziłem sobie sam jednak teraz już dwa dni nad tym siedze