Jasne, dziękuję za sprostowanie. Java to dla mnie nieodkryty świat. Posunęliśmy się do przodu. Program zaczyna brać pod uwagę elementy z tabliczy jednak wynikiem jest
NaN.
Dołączyłem funckję eval() i wstawiłem atrybut Number na licz licz = Number(licz); aby to obejść ale nadal jest błąd. może dołączę kod mojego skryptu.
1. Nagłówek PHP
<?php
if(empty($_SESSION['pol'])){ $_SESSION['pol']=1; }
if($_POST){
$_SESSION['pol']++;
}
if(empty($_SESSION['produkt'])){ $_SESSION['produkt']=1; }
if($_POST['add_p']){
if(empty($_SESSION['produkt'])){ $_SESSION['produkt']=2; } else{ $_SESSION['produkt']++; }
}
?>
2. Kod JS
function licz(cena,ilosc,rabat,wartosc){
x=cena.value;
x=x.replace(',','.');
x=parseFloat(x);
y=ilosc.value;
y=y.replace(',','.');
y=parseFloat(y);
var suma = 0;
x = eval(x);
y = eval(y);
suma = x * y;
if(rabat.value==""){
suma = x * y;
var suma = Number(suma);
suma = Math.round(suma*100)/100;
}else{
r=rabat.value;
r=r.replace(',','.');
r=parseFloat(r);
r = eval(r);
var rabat;
rabat = (x*y*r)/100;
suma = (x*y) - rabat;
suma = Math.round(suma*100)/100;
}
wartosc.value = suma;
}
function oblicz(){
var licz=0;
for(i=0; i<<?=$_SESSION['pol']?>; i++){
var x=document.getElementsByName("wartosc"+i);
licz += eval(x.value);
var licz = Number(licz);
//licz = 0;
var pole = '
<input type="text" name="p['+i+']" value="'+licz+'" />';
document.getElementById("pola").innerHTML += pole;
}
alert(licz);
}
3. Tabla do wypełnienia:
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="f1" id="f1">
<div id="pola"></div>
<table width="100%" border="1" style="margin-top: 20px;">
<tr>
<td style="width: 25px;">Lp.</td>
<td style="width: 350px;">Produkt</td>
<td style="width: 100px;" align="right">Cena jednost.</td>
<td align="center">Ilość [szt.]</td>
<td align="center">Rabat [%]</td>
<td style="width: 150px;" align="center">Wartość</td>
</tr>
<?
for($i=0; $i<$_SESSION['produkt']; $i++){?>
<tr>
<td align="center">
<? $lp = $i+1; echo($lp);?></td>
<td><input style="width: 100%" type="text" name="nazwa_p<?=$i;?>" value="<?=$_POST['nazwa_p'.$i.''];?>"></td>
<td><input style="width: 100%" type="text" name="cena_jed<?=$i;?>" value="<?=$_POST['cena_jed'.$i.''];?>"></td>
<td><input style="width: 100%" type="text" name="ilosc<?=$i;?>" value="<?=$_POST['ilosc'.$i.''];?>" onkeyup="licz(document.f1.cena_jed<?=$i;?>,document.f1.ilosc<?=$i;?>,document.f1.rabat<?=$i;?>,document.f1.wartosc<?=$i;?>)"></td>
<td><input style="width: 100%" type="text" name="rabat<?=$i;?>" value="<?=$_POST['rabat'.$i.''];?>" onkeyup="licz(document.f1.cena_jed<?=$i;?>,document.f1.ilosc<?=$i;?>,document.f1.rabat<?=$i;?>,document.f1.wartosc<?=$i;?>)"></td>
<td><input style="width: 100%" type="text" name="wartosc<?=$i;?>" id="wartosc<?=$i;?>" value="<?=$_POST['wartosc'.$i.''];?>" readonly="readonly"></td>
</tr>
<?}?>
<tr>
<td colspan="5" align="right">Dodaj kolejny produkt:</td>
<td><input style="width: 150px;" type="submit" name="add_p" value="Dodaj kolejny produkt"></td>
</tr>
</table>
<input type="hidden" name="pol" value="<?=$i;?>">
<input style="width: 100%" type="text" name="ddd" onkeyup="oblicz()">
</form>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wiem, że nie ładnie jest odpowiadać samemu sobie - ale poprawnym rozwiązaniem jest zastosowanie:
x=document.getElementById("wartosc"+i);
licz = eval(x.value);
Działa!

Dzięki za wszelkie podpowiedzi