Hola que tal estoy intentando guardar los cambiso que hace el usuario a un formulario multilinea, se activo la opcion “EventoJavaScript” y NO “Evento php” de manera que en el único boton “Modificar” intento que se guarde todos los cambiso hechos por el usuario. Uso para esto sga_anuncios que es un DatosTabla y detalleAviso es el formulario multilinea. al ejecutar el siguiente codigo que representa al evento modificar me salta un error
function evt__detalleAviso__modificacion($datos)
{
$this->dep('sga_anuncios')->validar($datos);
$this->dep('sga_anuncios')->sincronizar_filas($datos);
}
ERROR: componente(2309): La clave tiene un formato incorrecto.
Como debo ejecutar la actualización en la base de datos de lo que el usuario fue modificando con javascript en el form multilinea???
Gracias por sus aportes.
Alfredo.-
te hago una consulta, que valor tiene el combo que lleva como etiqueta ‘Analisis de cambio’?.
function evt__detalleAviso__modificacion($datos)
{
$this->dep('sga_anuncios')->validar($datos);
$this->dep('sga_anuncios')->sincronizar_filas($datos);
}
Aca tenes un tema y es que nunca le pasas los datos al DT, digamos… la funcion validar se va a llamar siempre previo a la sincronizacion, el tema es que dicha funcion trabaja sobre los datos que tiene en memoria el DT y en este caso no tiene ninguno.
Por otro lado, ambos metodos reciben un arreglo de claves internas, mientras que vos aca le estas pasando el arreglo de datos que te enviaron desde el cliente.
Lo que te faltaria seria, asignarle los datos al DT, eso lo podes hacer con el metodo procesar_filas o mediante un nueva_fila, segun como hayas configurado el ML y como prefieras trabajar.
Y luego sincronizar la tabla, podes sincronizar unicamente un grupo de filas especificas (usando sincronizar_filas) o toda la tabla (con el sincronizar a secas). Si elegis la primera forma, tenes que pasarle el arreglo con los ids internos al DT de dichas filas.
No se si te aclare algo o te confundi mas, cualquier cosa preguntame.