Buenos días, estoy intentando hacer un formulario multilineas como enseñaron en el curso de toba, pero me da un error cuando quiero eliminar filas, el problema es que no me carga nada en el id cuando la operacion es baja, es decir,
$datos_ids[]=$fila['id'];
en esta parte del codigo, el array $datos_ids queda vacio, entonces cuando hacemos el array_diff, la variable $ids_baja me queda con los ids iniciales que es el valor del array s__datos_iniciales_ids cual puede ser el error? les paso el código. Saludos y desde ya muchas gracias.
<?php
class ci_area_conocimiento extends digesto_ci
{
//-----------------------------------------------------------------------------------
//---- Eventos ----------------------------------------------------------------------
//-----------------------------------------------------------------------------------
protected $s__datos;
protected $s__datos_iniciales_ids;
function evt__procesar()
{
$datos_ids=array();
try{
toba::db()->abrir_transaccion();
foreach($this->s__datos as $clave =>$fila){
$sql=" ";
if($fila['apex_ei_analisis_fila']=='A'){
$sql="INSERT INTO area_conocimiento(denominacion)
VALUES (".quote($fila['denominacion']).");";
toba::db()->ejecutar($sql);
}
if($fila['apex_ei_analisis_fila']=='M'){
$sql="UPDATE area_conocimiento
SET denominacion =".quote($fila['denominacion'])."
WHERE id = ".quote($fila['id']).";";
toba::db()->ejecutar($sql);
}
if($fila['apex_ei_analisis_fila']=='B'){
$datos_ids[]=$fila['id'];
//print_r($datos_id);
//toba::db()->ejecutar($sql);
}
}
if(count($datos_ids) > 0){
print_r($datos_id);
//print_r($this->s__datos_iniciales_ids);
$ids_baja=array_diff($this->s__datos_iniciales_ids, $datos_ids);
// print_r($ids_baja);
}//else{
// $ids_baja=$this->s__datos_iniciales_ids;
//}
if(count($ids_baja > 0)){
foreach($ids_baja as $id){
$sql="UPDATE area_conocimiento
SET estado= 0
WHERE id =".quote($id).";";
toba::db()->ejecutar($sql);
}
}
toba::db()->cerrar_transaccion();
ei_arbol($this->s__datos_iniciales_ids);
ei_arbol($datos_ids);
ei_arbol($ids_baja);
toba::notificacion()->agregar('Datos Grabados Correctamente', 'Info');
}catch(toba_error_db $e){
toba::db()->abortar_transaccion();
ei_arbol($e);
toba::notificacion()->agregar('Problemas en la Transaccion', 'Error');
}
}
//-----------------------------------------------------------------------------------
//---- formulario_ml ----------------------------------------------------------------
//-----------------------------------------------------------------------------------
function conf__formulario_ml(digesto_ei_formulario_ml $form_ml)
{
unset($this->s__datos_iniciales_ids);
$sql="SELECT id, denominacion FROM area_conocimiento WHERE estado=1";
$datos=toba::db()->consultar($sql);
$form_ml->set_datos($datos);
foreach($datos as $fila){
$this->s__datos_iniciales_ids[]=$fila['id'];
}
}
function evt__formulario_ml__modificacion($datos)
{
print_r($datos);
$this->s__datos=$datos;
}
}
?>