Foros del Web » Programando para Internet » PHP »

Esconder DIV si no hay contenido

Estas en el tema de Esconder DIV si no hay contenido en el foro de PHP en Foros del Web. Hola a todos, Tengo un DIV en el que en algunas páginas aparece información que tengo guardada en una base de datos pero en las ...
  #1 (permalink)  
Antiguo 02/03/2013, 18:51
 
Fecha de Ingreso: agosto-2008
Mensajes: 43
Antigüedad: 11 años, 6 meses
Puntos: 1
Esconder DIV si no hay contenido

Hola a todos,

Tengo un DIV en el que en algunas páginas aparece información que tengo guardada en una base de datos pero en las páginas en las que no aparece nada me queda el espacio vacío y quisiera saber si es posible esconder este DIV cuando no tiene contenido.

De antemano gracias.
  #2 (permalink)  
Antiguo 02/03/2013, 18:57
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 7 años, 8 meses
Puntos: 8
Respuesta: Esconder DIV si no hay contenido

hola, yo lo haria con javascript...

Código Javascript:
Ver original
  1. function esconderDiv(){
  2.         var div=getElementById('nombreIdDiv');
  3.        if(!div.value)
  4.               div.setAttribute('style','display:none');
  5. }

Espero y te sirva...
  #3 (permalink)  
Antiguo 02/03/2013, 19:19
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 12 años, 7 meses
Puntos: 1567
Respuesta: Esconder DIV si no hay contenido

Cita:
Iniciado por oscard41 Ver Mensaje
hola, yo lo haria con javascript...

Código Javascript:
Ver original
  1. function esconderDiv(){
  2.         var div=getElementById('nombreIdDiv');
  3.        if(!div.value)
  4.               div.setAttribute('style','display:none');
  5. }

Espero y te sirva...
No. la propiedad value para un div no existe, se usa innerHTML

Código Javascript:
Ver original
  1. function esconderDiv(){
  2.         var eldiv=getElementById('nombreIdDiv');
  3.        if(eldiv.innerHTML == ""){
  4.               eldiv.style.display = none;
  5. }
  6. }

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 02/03/2013, 20:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 43
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Esconder DIV si no hay contenido

No me funciona pero no se si es porque en algo están interfiriendo las tablas que tengo dentro del DIV o estoy utilizando mal el JAVASCRIPT


Código Javascript:
Ver original
  1. function esconderDiv(){
  2.         var eldiv=getElementById('esconder');
  3.        if(eldiv.innerHTML == ""){
  4.               eldiv.style.display = none;
  5. }
  6. }


Código HTML:
Ver original
  1. <div id="esconder"><?php do { ?>
  2.                     <table width="600" border="0" cellpadding="0" cellspacing="0">
  3.                       <tr>
  4.                         <td width="20">&nbsp;</td>
  5.                         <td><table width="100%" border="0" cellpadding="5" cellspacing="0" class="borderListaHoteles">
  6.                           <tr>
  7.                             <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  8.                               <tr>
  9.                                 <td><img src="images/Hoteles/1.jpg" width="130" height="87" alt="imagenes"></td>
  10.                               </tr>
  11.                             </table></td>
  12.                             <td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
  13.                               <tr>
  14.                                 <td width="500" height="30" class="Title"><?php echo $row_Pago['Hotel']; ?></td>
  15.                                 <td width="79" align="right"><table width="79" border="0" cellpadding="0" cellspacing="0">
  16.                                   <tr>
  17.                                     <td>&nbsp;</td>
  18.                                   </tr>
  19.                                 </table></td>
  20.                               </tr>
  21.                             </table>
  22.                               <table width="100%" border="0" cellpadding="0" cellspacing="0">
  23.                                 <tr>
  24.                                   <td><table border="0" cellpadding="0" cellspacing="0">
  25.                                     <tr>
  26.                                       <td class="textoListaHoteles"><p><?php echo $row_Pago['Habitaciones']; ?><br>
  27.                                         <?php echo $row_Pago['Direccion']; ?><br>
  28.                                         <?php echo $row_Pago['Destino']; ?> &nbsp; &nbsp;<?php echo $row_Pago['Estado']; ?><br>
  29.                                         <br>
  30.                                       </p></td>
  31.                                     </tr>
  32.                                   </table></td>
  33.                                 </tr>
  34.                                 <tr>
  35.                                   <td height="10"></td>
  36.                                 </tr>
  37.                               </table></td>
  38.                           </tr>
  39.                         </table></td>
  40.                       </tr>
  41.                     </table>
  42.                     <?php } while ($row_Pago = mysql_fetch_assoc($Pago)); ?> </div>
  #5 (permalink)  
Antiguo 02/03/2013, 20:34
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 12 años, 7 meses
Puntos: 1567
Respuesta: Esconder DIV si no hay contenido

Perdón, cometí un error

la función es

Código:
function esconderDiv(){
        var eldiv=document.getElementById('esconder');
       if(eldiv.innerHTML == ""){
              eldiv.style.display = none;
}
}
faltaba el document

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 03/03/2013, 09:46
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 8 meses
Puntos: 832
Respuesta: Esconder DIV si no hay contenido

Con PHP no sólo es más fácil sino que es lo correcto:

Código PHP:
Ver original
  1. foreach($datos as $k => $d) {
  2.     if( empty($d) ) continue;
  3.  
  4.     echo '<div id="contenedor-'. $k .'">'. $d .'</div>';
  5. }
El problema del javascript es que no altera la estructura física del documento, por lo que -dependiendo del proyecto- fácilmente podemos tener 500 divs vacíos que, aunque ocultos con display none, de todas formas se imprimen en nuestro HTML.
  #7 (permalink)  
Antiguo 03/03/2013, 09:55
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 8 años, 7 meses
Puntos: 181
Respuesta: Esconder DIV si no hay contenido

metacortex tiene una buena idea. Yo alguna vez hice algo mezclando css que tambien podria servir. Si no tienes contenido puedes crear dos class en css. En una tendras el div normal con las propiedades que le asignes y en la otra una clase que tenga un display none, algo asi como:

Código CSS:
Ver original
  1. h1.hidden {display:none;}

Entonces en función de si existe o no información renombraras el div con uno u otro nombre. Espero haber sido claro con la idea.
__________________
Blog de humor http://elcuasatar.net63.net/
  #8 (permalink)  
Antiguo 03/03/2013, 10:23
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 7 años, 10 meses
Puntos: 34
Respuesta: Esconder DIV si no hay contenido

Yo usaría css por ejemplo si es una validación de form, entonces el div siempre está ahi pero solo se ve si tiene algo.

De otro modo haría algo asi:
Código PHP:
Ver original
  1. <?php isset($contenidoDiv) AND print('<div>.$contenidoDiv.</div>');?>

y listo lo resolves con 1 linea

Etiquetas: contenido, esconder
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:12.