Estimados, tengo el siguiente problema...
Tengo una tabla dinamica, la cual en cada celda tiene un input visible (y otros ocultos), y cada celda es un form distinto.
Este es el código donde estoy trabajando.
Código PHP:
<?php while ($ver = mysqli_fetch_row($alumnos)){ ?>
<tr style='vertical-align: middle;'>
<td><?php echo strtoupper($ver[4]." ".$ver[5]." ".$ver[6]); ?></td>
<?php
for ($i=0;$i<$cantidad_notas;$i++){
$na = mysqli_fetch_row($notas);?>
<td><form id="form" name="form" method="post">
<input type="hidden" id="id_curso" name="id_curso" value="<?php echo $id_curso ?>"/>
<input type="hidden" id="id_asignatura" name="id_asignatura" value="<?php echo $id_asignatura ?>"/>
<input type="hidden" id="semestre" name="semestre" value="<?php echo $semestre ?>"/>
<input type="hidden" id="anho" name="anho" value="<?php echo $anho ?>"/>
<input type="hidden" id="id_alumno" name="id_alumno" value="<?php echo $ver[0] ?>"/>
<input type="hidden" class="form-control-sm" id="id_nota" name="nota" size="1" value="<?php echo $na[0]; ?>"/>
<input type="text" class="form-control-sm" id="nota" name="nota" size="1" value="<?php echo $na[4]; ?>"/>
</form>
</td>
<?php } ?>
<td>
<?php
$promedio = 0;
for ($j=0;$j<$contador_notas;$j++){
$no = mysqli_fetch_row($notas2);
$promedio = $promedio+$no[4];
}
echo round($promedio/$contador_notas, 1, PHP_ROUND_HALF_UP);
?>
</td>
</tr>
<?php } ?>
El tema es que necesito, de alguna forma, que cada vez que cambie de celda se registre el cambio en la base de datos.
Tengo pensado en hacerlo con Ajax, pero al salir de la celda no se envían los datos del formulario.
Código:
function actualizarNota(){
var id_nota = parseInt(document.getElementById("id_nota").value);
var id_curso = parseInt(document.getElementById("id_curso").value);
var id_asignatura = parseInt(document.getElementById("id_asignatura").value);
var id_alumno = parseInt(document.getElementById("id_alumno").value);
var nota = parseFloat(document.getElementById("nota").value);
var semestre = parseInt(document.getElementById("semestre").value);
var anho = parseInt(document.getElementById("anho").value);
string=
"id_notas=" + id_notas +
"&id_curso=" + id_curso +
"&id_asignatura=" + id_asignatura +
"&id_alumno=" + id_alumno +
"¬a=" + nota +
"&semestre=" + semestre +
"&anho=" + anho;
$.ajax({
type:"POST",
url:"../notasv2/agregarNota.php",
data:string,
success:function(r){
if(r==1){
$('#tabla').load('tabla_NOTAS.php');
alertify.success("Agregada correctamente");
}else{
alertify.error(r);
}
}
})
}
Alguna guía de por donde deba atacar el problema?