Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2011, 08:33
portela85
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 1 mes
Puntos: 3
recuperar datos para un formulario tipo checkbox y select

Muy buenas a todos. Os explico mi problema: tengo un formulario desde el que puedo tanto reportar nuevas actividadas, como modificar las ya existentes. En el primer caso tengo claro lo que hay que hacer pero mi problema llega en el segundo.
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:
<?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;
	    
    }
}
el archivo reportes.php desde el que llamo a las funciones y plasmo en las plantillas.

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);