Ver Mensaje Individual
  #7 (permalink)  
Antiguo 20/09/2011, 16:34
lubtufano
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 13 años, 5 meses
Puntos: 72
Respuesta: Mostrar y Ocultar Contenido

Hola mixzplit, te dejo el código completo que se necesita con una pequeña corrección, que es la parte para ocultar el texto desplegado cuando se muestra otro y volver a la versión corta; pruebalo a ver que te parece. Primero el código javascript que debe ir en la cabecera de la página.
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. var datos= new Array();
  3. var visible= -1;
  4. function mostrar(obj, indice)
  5. {
  6.     if(visible != -1)
  7.     {
  8.         var actual= document.getElementById('celda'+visible);
  9.         var o= 'celda'+ visible;
  10.         actual.innerHTML= datos[visible].substring(0, 5)+'<a href="#" onClick="mostrar(\''+o+'\', '+visible+')"> [...]</a>';
  11.     }
  12.     var celda= document.getElementById(obj);
  13.     celda.innerHTML= datos[indice];
  14.     visible= indice;
  15. }
  16. </script>

Y tambien el código php con el bloque 'else' necesario.
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION['us_id'])){
  3. header("Location: ../index.php");
  4. } else {
  5. $usuario=$_SESSION['us_id'];
  6. $admin=$_SESSION['us_tipo'];
  7.  
  8. $emp=$_GET["q"];
  9.  
  10. include_once("conexion.php");
  11. include('./Scripts/funcion.php');
  12.     $conexion = new ControlBD();
  13.     $conexion->conectar();
  14.     $conexion->seleccionarBD();
  15.    
  16. $query="SELECT req_id, em_nombre,su_nombre, us_unidad, us_cargo, us_nombre, us_apellido, us_email, us_telefono, mo_nombre, tra_maestro, req_date, req_descripcion, req_valicacion, us_tipo, req_imagen, req_archivo FROM cgrequerimientos
  17.           INNER JOIN cgempresa on req_idempresa=em_id
  18.           INNER JOIN cgusuarios on req_usuario=us_id
  19.           INNER JOIN cgmodulo on req_idmodulo=mo_id
  20.           INNER JOIN cgtransacciones on req_idtrans=tra_tipo
  21.           INNER JOIN cgsucursal ON req_idsucursal=su_id
  22.            WHERE req_valicacion=0 and req_estado='Activo' AND em_id = '$emp'
  23.            ORDER BY req_id,req_date";
  24. $result=$conexion->ejecutarQuery($query);
  25. ?>
  26. <form>
  27. <a href="javascript:imprSelec('seleccion')" >Imprimir Requerimientos</a>
  28. <div class="centrado">
  29. <DIV ID="seleccion">
  30. <table class="tablas">
  31.     <tr>
  32.         <th>Empresa</th>
  33.         <th>Sucursal</th>
  34.         <th>Ticket</th>
  35.         <!--<th>Departamento</th>
  36.         <th>Cargo del Solicitante</th> -->
  37.         <th>Nombre</th>
  38.         <th>Email</th>
  39.         <th>Telefono</th>
  40.         <th>Modulo</th>
  41.         <th>Transaccion</th>
  42.         <th>Fecha</th>
  43.         <th>Descripcion</th>
  44.         <th>Imagen</th>
  45.         <th>Documentacion</th>
  46.         <th colspan="4">Acciones</th>
  47.     </tr>
  48. <?
  49. $indice= 0;
  50. while($array=mysql_fetch_array($result)){ $id=$array['req_id'];?>
  51.     <tr>
  52.         <td><?=$array['em_nombre']; ?></td>
  53.         <td><?=$array['su_nombre']; ?></td>
  54.         <td><strong><?=$array['req_id']; ?></strong></td>
  55.         <!--<td><?=$array['us_unidad']; ?></td>
  56.         <td><?=$array['us_cargo']; ?></td>-->
  57.         <td><?=$array['us_nombre']." ".$array['us_apellido']; ?></td>
  58.         <td><?=$array['us_email']; ?></td>
  59.         <td><?=$array['us_telefono']; ?></td>
  60.         <td><?=$array['mo_nombre']; ?></td>
  61.         <td><?=$array['tra_maestro']; ?></td>
  62.         <td><?=cambiar_fecha($array['req_date']); ?></td>
  63.         <td style=" text-align:justify; font-family:Tahoma, Geneva, sans-serif; font-size:12px;" id="<?="celda".$indice; ?>">
  64.         <? if(strlen($array['req_descripcion']) <= 120){
  65.              echo $array['req_descripcion'];
  66.              }else{
  67.     echo $descri=substr($array['req_descripcion'], 0, 120)."<a href=\"#\" onClick=\"mostrar('celda".$indice."', ".$indice.")\">[...]</a>";
  68.     echo "<script type=\"text/javascript\">\n";
  69.     echo "datos[".$indice."]= '".$array['req_descripcion']."'\n";
  70.     echo "</script>\n";
  71.     } ?>
  72.          </td>
  73.        
  74.         <td><a href="<?=$array['req_imagen']; ?>" rel="lightbox" title="imagen"><img src="<?=$array['req_imagen']; ?>" alt="imagen" width="72" height="64" /></a></td>
  75.        
  76.         <? $archivo=$array['req_archivo']; if(substr($archivo,-3) == 'doc'){ ?>  
  77.         <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/word.png" alt="Word" width="50" height="50"  /></a></td>
  78.         <? } if(substr($archivo,-4) == 'docx'){ ?>  
  79.         <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/word.png" alt="Word" width="50" height="50"  /></a></td>
  80.         <? } elseif(substr($archivo,-3) == 'xls'){ ?>  
  81.         <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/excel.png" alt="Excel" width="50" height="50"  /></a></td>
  82.         <? } elseif(substr($archivo,-4) == 'xlsx'){ ?>  
  83.         <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/excel.png" alt="Excel" width="50" height="50"  /></a></td>
  84.         <? } elseif(substr($archivo,-3) == 'pdf'){ ?>  
  85.         <td class="center"><a href="<?=$array['req_archivo']; ?>" title="Documentacion"><img src="images/pdf.png" alt="Excel" width="50" height="50"  /></a></td>
  86.         <? } else {?>
  87.         <td class="center">No Tiene</td>
  88.         <? } ?>
  89.        
  90.         <td><a href="Javascript:Borrar('<?=$id;?>','Borrar_disp.php' ,'800','300')" title="Anular"><img src="./imagenes/eliminar.png" alt="Eliminar" border=0 ></a></td>
  91.         <td><a href="javascript:Actualizar('<?=$id;?>','modificareq.php' ,'850','370')" title="Modificar"><img src="./imagenes/actualizar.png" alt="Modificar" border=0></a></td>
  92. <? if($array['req_valicacion']==0){ ?>
  93.         <td><a href="javascript:Validar('<?=$id;?>','activar.php' ,'800','300')" title="Validar"><img src="./imagenes/aceptar.png" alt="Agregar" border=0 ></a></td><? } ?>
  94.    
  95.     <td><a href="javascript:Correo('<?=$id;?>','correo.php' ,'800','300')" title="Correo"><img src="./imagenes/mail.png" alt="Agregar" border=0 ></a></td>
  96.    
  97.     </tr>
  98. <?
  99. $indice++;
  100.  } ?>
  101. </table>
  102. </DIV>
  103. </div>
  104. </form>
  105. </body>
  106. <? }?>

Como puedes ver la variable '$indice', que se define antes del bucle 'while' y que aumenta su valor en uno a cada iteración del bucle, es la que sirve para asignar el 'id' a cada celda que contine la descripción y tambien para guardar esta descripción en la posición correspondiente del array y poder recuperarla despues.

Edito:


En el código javascript hay una equivocación en esta linea.

Código Javascript:
Ver original
  1. actual.innerHTML= datos[visible].substring(0, 5)+'<a href="#" onClick="mostrar(\''+o+'\', '+visible+')"> [...]</a>';

Como esta solo mostrara seis caracteres, lo correcto es esto.

Código Javascript:
Ver original
  1. actual.innerHTML= datos[visible].substring(0, 120)+'<a href="#" onClick="mostrar(\''+o+'\', '+visible+')"> [...]</a>';

De esta manera se mostraran los 121 caracteres iniciales.

Última edición por lubtufano; 20/09/2011 a las 16:53