ya eso es tema de php, el cual no manejo. pero por lo que logro interpretar, quieres calcular el promedio de cada estudiante. en ese caso, los campos no deberían tener nombres distintos. sino que cada alumno debe tener un nombre distinto entre si, pero igual para todos los campos. o sea, para el primer alumno, los campos serían
p1[], para el segundo
p2[], etc. luego la función en javascript deberías mejorarla. yo haría una función genérica para calcular promedio de modo que reciba un número variable de argumentos y que devuelva el valor:
Código:
function avg(){
for(var sum = 0, i = 0, ln = arguments.length; i < ln; i++) sum += Number(arguments[i].value);
return sum / ln;
}
al invocarlo, le pasas cada uno de los campos que constituye el promedio. por ejemplo, podrías invocarlo así
this.form['res[]'][0].value = avg.apply(null, this.form['p1[]']);
en el evento onchange del último campo.
this.form['res[]'][0].value es la referencia para el campo del promedio del primero alumno. con php tienes que cambiar la referencia para cada alumno, tanto para el campo de resultado como los campos a pasar a la función.