Desde una lista de actividades puedo seleccionar una de ellas y se me carga el formulario mencionado con los campos llenos con los valores que contiene esa actividad, extraidos de una base de datos. Para los input tipo text y los textares no tengo problema, pero los input tipo checkbox y en los select no sé cómo rellenarlos.
Os dejo mis archivos. Por un lado parte de la clase Trabajos:
Código:
el archivo reportes.php desde el que llamo a las funciones y plasmo en las plantillas.<?php include_once ("Consulta.class.php"); include_once("SesionCentral.class.php"); include_once("Constantes.class.php"); include_once("Mensaje.class.php"); class Trabajos extends SesionCentral{ function _construct(){ parent::_construct; } function MostrarPorIdentificador($idtrabajo){ $query ="SELECT idtrabajo, indi, grupo, cliente, proyecto, interlocutor, f_inicio, f_fin, "; $query.="descripcion, cantidad, escalado, descripcionescalado, preciototal, pago_actuacion, "; $query.="nocturna, comentarios, status_idstatus, descripcionstatus, actividades_Id_actividad, "; $query.="consultores_Ident_consultor, pagohoras, horas FROM trabajos WHERE idtrabajo='$idtrabajo';"; $consulta = new Consulta($query); if($fila = $consulta->obtener_fila()) { $this->idtrabajo = $fila['idtrabajo']; $this->indi = $fila['indi']; $this->grupo = $fila['grupo']; $this->cliente = $fila['cliente']; $this->proyecto = $fila['proyecto']; $this->interlocutor = $fila['interlocutor']; $this->f_inicio = $fila['f_inicio']; $this->f_fin = $fila['f_fin']; $this->descripcion = $fila['descripcion']; $this->cantidad = $fila['cantidad']; $this->escalado = $fila['escalado']; $this->descripcionescalado = $fila['descripcionescalado']; $this->preciototal = $fila['preciototal']; $this->pago_actuacion = $fila['pago_actuacion']; $this->nocturna = $fila['nocturna']; $this->comentarios = $fila['comentarios']; $this->status_idstatus = $fila['status_idstatus']; $this->descripcionstatus = $fila['descripcionstatus']; $this->actividades_Id_actividad = $fila['actividades_Id_actividad']; $this->consultores_Ident_consultor = $fila['consultores_Ident_consultor']; $this->pagohoras = $fila['pagohoras']; $this->horas =$fila['horas']; } } public function obtenerClientes(){ /*($proyecto) el objetivo es obtener los clientes según el proyecto seleccionado JQUERY, AJAX, JS...*/ $query = "SELECT Id_cliente, cliente FROM clientes order by cliente ASC"; $consulta = new Consulta($query); /*if($fila = $consulta->obtener_fila()) { $grupos = array ( 'Idgrupo' =>$fila['Idgrupo'] );}*/ $clientes = "<select name='".cliente."'>\n"; if(isset($trabajo->cliente)) { $clientes.="<option value='". $trabajo->cliente."'>".print $trabajo->cliente."</option>"; while($fila=$consulta->obtener_fila()){ //concatenamos y le damos el value a la opcion $clientes .= " <option value='".$fila['cliente']."'>".$fila['cliente']."</option>";} //concatenamos y cerramos el select $clientes .= "</select>\n"; } else{ $clientes = "<select name='".cliente."'>\n"; while($fila=$consulta->obtener_fila()){ //concatenamos y le damos el value a la opcion $clientes .= " <option value='".$fila['cliente']."'>".$fila['cliente']."</option>";} //concatenamos y cerramos el select $clientes .= "</select>\n"; } $cliente=$trabajo->cliente; return $clientes; } }
Código:
<?php session_start(); include_once "./clases/Template.php"; include_once "./clases/Usuario.class.php"; include_once "./clases/Trabajos.class.php"; $tpl =new Template(); $usuario= new Usuario(); $trabajo= new Trabajos(); $tpl_cabecera = new Template(); $tpl_pie = new Template(); $tpl_cuerpo = new Template(); $tpl_cabecera->set_vars(array( 'usuario_actual' => $usuario->obtenerUsuarioIdActual())); $accion = isset($_REQUEST['accion']) ? $_REQUEST['accion'] : 'desconocido'; switch ($accion){ case 'anadir': if (isset($usuario_actual)){ try{ $tpl->set_vars(array( 'proyecto' => $usuario->obtenerProyectos($usuario->obtenerUsuarioIdActual()), 'grupo' => $usuario->obtenerGrupos($usuario->obtenerUsuarioIdActual()), 'cliente' => $usuario->obtenerClientes(), 'interlocutor' => $usuario->obtenerInterlocutores(), 'statu' => $usuario->obtenerStatus(), 'actividad' => $usuario->obtenerActividades())); } catch (Exception $e) { $tpl_report->set('error_msg',$e->getMessage()); }} $tpl->set('accion','guardar'); $tpl_cuerpo = 'reporte_anadir.tpl.php'; break; case 'guardar': try { Trabajos::insertarTrabajo($_POST['group'],$_POST['proyecto'],$_POST['cliente'],$_POST['interlocutor'],$_POST['activiti'],$_POST['fechainicio'],$_POST['fechafin'],$_POST['descripcion'],$_POST['status'],$_POST['descripcionstatus'],$_POST['cantidad'],$_POST['escalado'],$_POST['descripcionescalado'],$_POST['pago'],$_POST['nocturna'],$_POST['pagohoras'], $_POST['horas']); } catch (Exception $e){ print $e->getMessage(); } $tpl_cuerpo = 'reporte_inicio.tpl.php'; break; case 'editar': try{ $tpl->set_vars(array( 'cliente' => $usuario->obtenerClientes())); } catch (Exception $e) { $tpl->set('error_msg',$e->getMessage()); } $trabajo = new Trabajos; $trabajo->MostrarPorIdentificador($_GET['idtrabajo']); $tpl->set('trabajo',$trabajo); $tpl->set('accion','modificar'); $tpl_cuerpo = 'reporte_anadir.tpl.php'; break; case 'modificar': $trabajo = new Trabajos($_POST['idtrabajo']); $trabajo->modificarTrabajos($_POST['idtrabajo']); $tpl_cuerpo = 'reporte_inicio.tpl.php'; break; case 'vereliminar': $trabajo = new Trabajo($_GET['idtrabajo']); $tpl->set('trabajo',$trabajo); $tpl_cuerpo = 'reporte_eliminar.tpl.php'; break; case 'eliminar': try { $trabajo = new Trabajos($_POST['idtrabajo']); $trabajo->eliminarTrabajo($_POST['idtrabajo']); } catch (Exception $e){ $tpl->set('error_msg', $e->getMessage()); } $tpl_cuerpo = 'reporte_inicio.tpl.php'; break; default: $tpl_cuerpo = 'reporte_inicio.tpl.php'; } $tpl->set('reportes_lista_de_hoy', Trabajos::resumenTrabajoHoy()); $tpl->set('cabecera', $tpl_cabecera->fetch('cabecera.tpl.php')); $tpl->set('pie', $tpl_pie->fetch('pie.tpl.php')); echo $tpl->fetch($tpl_cuerpo);