Nueva pregunta

Pregunta:

Fecha: 13-09-2016 13:58:04 (En Español)

¿Cómo pasar matriz de controlador a vista?[Resuelta]

Buenas comunidad!
Tengo la siguiente consulta: tengo una función en un controlador para procesar unos archivos y luego ordenar los datos en un arreglo para mostrarlos en la vista. Concretamente tengo que ordenar una lista de estudios en una matriz y pasarlos a la vista pero no lo estoy haciendo bien:
public function cargarDICOM()
		{
			$archivos=$this->leerDir();

			for ($i=0; $i <count($archivos) ; $i++) { 
				
				$file = (isset($argv[1]) ? $argv[1] : "archivosDICOM/".$archivos[$i]);

				if(!$file) {
				  print "USAGE: ./get_tags.php <FILE>\n";
				  exit;
				}

				if(!file_exists($file)) {
				  print "$file: does not exist\n";
				  exit;
				}

				$d = new dicom_tag($file);
				$d->load_tags();


				$data=array('estudios'=> array(	'modalidad'=>$d->get_tag('0008', '0060'),
											'nombrePaciente'=>$d->get_tag('0010', '0010'),
											'idPaciente'=>$d->get_tag('0010', '0020'),
											'fechaNacimiento'=>$d->get_tag('0010', '0030'),
											'fechaEstudio'=>$d->get_tag('0008', '0020'),
											'medicoPrescriptor'=>$d->get_tag('0008', '0090'),
											'obraSocial'=>$d->get_tag('0008', '0050')

										));
								
			}
			
			$dato=array('titulo'=>'Estudios');
			$this->load->view('vHeader', $dato);
			$this->load->view('vMenu');
			$this->load->view('vEstudios',$data);
			$this->load->view('vfooter');	

		}


Entiendo de que esa manera solo estoy pasando un solo estudio porque sobrescribo la posición 'estudios' de mi array, pero no se como hacerlo de manera correcta. Ayuda!!

Gracias desde ya !
Etiquetas: Array PHP - Código fuente - MVC - PHP - Pregunta - Web Votos: 1 - Respuestas: 3 - Vistas: 19 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 14-09-2016 07:39:28 Dime si la 1ra condición

       if(!$file) {
                      print "USAGE: ./get_tags.php <FILE>\n";
                      exit;
                    }
    


    funciona bien.

    a y que tipo de "Error es que te muestra"
      Votos: 1 - Link respuesta
     
  • Fecha: 14-09-2016 12:05:53 Dyan:

    Buenas tardes. No me muestra ningun error. Si bien yo te muestro el codigo de toda la funcion, la parte que me interesa es la siguiente:
    $data=array('estudios'=> array(	'modalidad'=>$d->get_tag('0008', '0060'),
    											'nombrePaciente'=>$d->get_tag('0010', '0010'),
    											'idPaciente'=>$d->get_tag('0010', '0020'),
    											'fechaNacimiento'=>$d->get_tag('0010', '0030'),
    											'fechaEstudio'=>$d->get_tag('0008', '0020'),
    											'medicoPrescriptor'=>$d->get_tag('0008', '0090'),
    											'obraSocial'=>$d->get_tag('0008', '0050')
    
    										));
    								
    			}
    			
    			$dato=array('titulo'=>'Estudios');
    			$this->load->view('vHeader', $dato);
    			$this->load->view('vMenu');
    			$this->load->view('vEstudios',$data);
    			$this->load->view('vfooter');	
    


    Es decir, quiero saber como cargar de manera correcta el array, pasarselo a la vista y como mostrarlo dentro de una grilla. De la manera que lo tengo, en la grilla me muestra todas las filas con el mismo estudio repetido, creo que es porque sobrescribo siempre la misma posición del array.
    En esta pequeña porción de codigo muestro como tengo la vista para mostrar la grilla:

    <?php foreach ($estudios as $fila ) 
    													{ ?>
    														
    													
    													<tr>
    
    														<td ><?php echo strtoupper($estudios['modalidad']); ?></td>
    														<td><?php echo strtoupper($estudios['nombrePaciente']); ?></td>
    														<td><?php echo($estudios['idPaciente']);?></td>
    														<td class="hidden-480"><?php echo strtoupper($estudios['fechaNacimiento']); ?></td>
    														<td><?php echo strtoupper($estudios['fechaEstudio']); ?></td>
    														<td><?php echo strtoupper($estudios['medicoPrescriptor']); ?></td>	
    														
    														<td class="hidden-480">
    															<span class="label label-sm label-warning">REALIZADO</span>
    														</td>
    														
    



    Espero haberme explicado bien.

    Saludos!
    Diego.
      Votos: 1 - Link respuesta
     
  •  
      1  
     
    Fecha: 17-09-2016 12:02:01 Hola, intentalo de esta forma:

    $data = array("estudios" => array( 
    						$i => array( 'modalidad'=>($d->get_tag('0008', '0060'),
                                         'nombrePaciente'=>$d->get_tag('0010', '0010'),
                                         'idPaciente'=>$d->get_tag('0010', '0020'),
                                         'fechaNacimiento'=>$d->get_tag('0010', '0030'),
                                         'fechaEstudio'=>$d->get_tag('0008', '0020'),
                                         'medicoPrescriptor'=>$d->get_tag('0008', '0090'),
                                         'obraSocial'=>$d->get_tag('0008', '0050')
           )));


    Si te fijas uso como indice $i que es la variable que se autoincrementa dentro del for.

    Luego en tu vista debes iterarlo de esta forma:

    <?php foreach ($estudios as $fila ) { ?>
    <?php extract($fila) ?>
    <tr>
    	<td ><?php echo strtoupper($modalidad); ?></td>
        <td><?php echo strtoupper($nombrePaciente); ?></td>
        <td><?php echo($idPaciente);?></td>
        <td class="hidden-480"><?php echo strtoupper($fechaNacimiento); ?></td>
        <td><?php echo strtoupper($fechaEstudio); ?></td>
        <td><?php echo strtoupper($medicoPrescriptor); ?></td>    
        <td class="hidden-480">
            <span class="label label-sm label-warning">REALIZADO</span>
        </td>


    Creo que de esa forma deberia funcionarte, nos cuentas si asi fue!

    Saludos
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com