Probleme de DIV en PHP

nanou22
Invité n'ayant pas de compte PHPfrance

03 sept. 2010, 11:53

Bonjour

J'ai un soucis j'ai une page qui affiche une liste de résultat de recherche dans une div avec un scroll
<div style="overflow:auto; height:197px; width:600px">
mes resultat
<div>

Mais la la div avec le scroll ne sert que si il y a plus de 2 résultats et je voudrais que me div ne s'affiche pas si il y a 1 resultat pour ne pas avoir un bloc de hauteur de 197px avec un resultat qui n'en prend que 50px.

Est ce possible ?
Et ai je été clair ?
Merci de votre Aide !!

Petit nouveau ! | 9 Messages

03 sept. 2010, 11:59

Mettons que ton tableau contenant tes résultats s'appelle $tab
Tu fais un
if (count($tab) > 1) echo '<div style="overflow:auto; height:197px; width:600px">mes resultat<div>';
Ou alors tu peux faire varier la taille de ton bloc en fonction du nombre de résultat :
if (count($tab) == 1) echo '<div style="overflow:auto; height:50px; width:600px">mes resultat<div>';
elseif (count($tab) == 1) echo '<div style="overflow:auto; height:197px; width:600px">mes resultat<div>';
else ...
Enfin là c'est pas très propre mais c'est juste pour t'expliquer le principe.
23Prod, Audit et conception de systèmes d'informations : http://www.23prod.fr

nanou22
Invité n'ayant pas de compte PHPfrance

03 sept. 2010, 12:09

Merci de ton aide

Je suis débutante et je ne vois pas ou le mettre sur ma page
Voici le code de ma page

Code : Tout sélectionner

<?php defined('_JEXEC') or die('Restricted access'); if( class_exists( "JATJPConfig" ) ) { $conf = new JATJPConfig(); } $session =& JFactory::getSession(); //$css = JURI::base().'components/com_formation/assets/style.css'; $document =& JFactory::getDocument(); //$document->addStyleSheet($css); $js =" function ajoutauselection(id){ $('sel'+id).setHTML(''); url = 'index2.php?option=com_formation&view=categorie&c=categorie&task=ajoutauselection&id='+id; var myRequest = new Ajax(url,{ method: 'get', onSuccess: function(responseText) { alert(responseText); }}).request(); }"; $document->addScriptDeclaration($js); jimport('joomla.html.html'); JRequest :: setVar('layout', 'default'); $js = "window.addEvent('domready', function(){"; $quand = $session->get('quand',false); $ou = $session->get('ou',false); $horaires = $session->get('horaire',false); $qui = $session->get('qui',false); $selection = $session->get('selection',false); //effacer les encient demande de session $pagenation = $this->pagination; $model = $this->model; $params = $this->params; $option = $this->option; $items = $this->items; $list = $this->list; $quandlist = $this->quandlist; $horairelist = $this->horairelist; $id_soustype = 0; ?> <form action="<?php echo JRoute::_('index.php?option=com_formation&view=categorie&layout=list'); ?>" method="post" name="adminForm"> <br /> <table width="100%"><tr><td valign="top"> <?php if(count($items)){ $id_soustype = ''; foreach ($items as $item) { if($item->id_soustype != $id_soustype) { if( !empty($id_soustype) ) echo "</div>"; $id_soustype = $item->id_soustype; $detailssoustype = $model->getdetailssoustype($id_soustype); $image = $detailssoustype['soustype']->image; $nomsoustype = $detailssoustype['soustype']->nom; $nomtype = $detailssoustype['type']; echo '<div class="listlist">'; echo '<table width="100%" height="100%"><tr><td><img height ="139" src ="images/formation/soustype/'.$image.'" /></td><td width="100%" height="100%">'; echo '<div class="labeltxt"><label class="group">'.$detailssoustype['type'].'</label><br><label class="type"> '.$detailssoustype['soustype']->nom.'</label></div>'; echo '</td><td><img height ="139" src ="images/formation/soustype/'.$image.'" style="padding-left:10px" /></td></tr></table></div><div class="around-border"></div>'; echo '<div style="overflow:auto; height:197px; width:600px">'; } $detailssoustype = $model->getdetailssoustype($item->id_soustype); if($item->image_list) $image = 'images/formation/image_list/'.$item->image_list; else $image = 'images/formation/soustype/'.$detailssoustype['soustype']->image; echo '<div class="listlist2">'; echo '<table width="100%" heigh="100%"><tr><td width="139">'; echo '<label class="soustype'.$model->getlieunom2($item->lieu).'">'.$model->getlieunom($item->lieu).'</label>'; echo '</td><td width="385" height="100%"><table width="100%" height="100%" ><tr><td colspan="2">'; echo '</td></tr><tr><td valign="bottom">'; echo '<b>'.JText::_('Age ').'</b>'.$item->age_afficher.'&nbsp;>&nbsp;<b>'.JText::_('Niveau ').'</b> '.$item->niveau.'<br>'; echo '<b>'.JText::_('Animé par ').'</b>'.$model->getnomanimateur($item->id_animateur).'<br>'; echo ''.$item->date_afficher.'&nbsp;'.$item->horaire_debut.'-'.$item->horaire_fin.''; echo ''; echo '</td><td width="33%" valign="bottom" align="right">'; echo '<b>'.$item->statut.'</b><br>'; if(@!in_array($item->id, $selection)) echo '<div id="sel'.$item->id.'"><input type="button" class="selectionner" onclick="ajoutauselection('.$item->id.')" /></div>'; echo '<a href="index.php?option=com_formation&view=details&id='.$item->id.'" class="link"> >> Lire la suite</a>'; echo '</td></tr></table></td></tr></table>'; echo '</div>'; } echo '</div>'; echo $pagenation->getListFooter(); } else { echo 'Pas des articles'; } ?> </td><td valign="top" width="255"> <div class="filterdynamique"> <h3>AFFINEZ VOTRE RECHERCHE</h3> <div> <table> <tr><td><label class="type">Qui</label></td></tr> <tr><td> <?php $ListOption[] = JHTML::_('select.option', 0, jtext::_('Age')); for($i=1;$i<101;$i++) { $ListOption[] = JHTML::_('select.option', $i, $i); } echo JHTML::_('select.genericlist', $ListOption, 'qui',false, 'value', 'text', $qui); ?> </td></tr> <tr><td><label class="type">Jours</label></td></tr> <tr><td><?php foreach ($quandlist as $k) { if($quand && in_array($k->date_afficher, $quand)) echo '<input type="checkbox" name="quand[]" checked="checked" value="'.$k->date_afficher.'" />'.$k->date_afficher.'<br>' ; else echo '<input type="checkbox" name="quand[]" value="'.$k->date_afficher.'" />'.$k->date_afficher.'<br>' ; } ?></td></tr> <tr><td><label class="type">Quand</label></td></tr> <tr><td> <?php $horaire = array('matin'=>'Matin','apresmidi'=>'Aprés midi','soir'=>'Soir'); foreach ($horairelist as $k) { if($horaires && in_array($k->horaire_afficher, $horaires)) echo '<input type="checkbox" name="horaire[]" checked="checked" value="'.$k->horaire_afficher.'" />'.$k->horaire_afficher.'<br>' ; else echo '<input type="checkbox" name="horaire[]" value="'.$k->horaire_afficher.'" />'.$k->horaire_afficher.'<br>' ; } ?> </td></tr> <tr><td><label class="type">Ou</label></td></tr> <tr><td><?php foreach ($list['lieu'] as $lieu) { if($ou && in_array($lieu->id, $ou)) echo '<input type="checkbox" name="ou[]" checked="checked" value="'.$lieu->id.'" />'.$lieu->nom.'<br>' ; else echo '<input type="checkbox" name="ou[]" value="'.$lieu->id.'" />'.$lieu->nom.'<br>'; } ?></td></tr> <tr><td></td></tr> </table> </div> </div><div style="padding-top:10px; position:relative; top:10px; padding-left:5px; height:40px"><div style="float:left"><a href="index.php?option=com_formation&view=selection&Itemid=4"><img src="http://www.hybride-test9.com/crl10/templates/ja_purity_ii/images/select.png" width="121" height="37" /></a></div> <div style="float:right"><input type="hidden" name="remplire" value="oui" /><input type="submit" value="" class="searchnew"/></div> </div> </td></tr></table> </form>

nanou22
Invité n'ayant pas de compte PHPfrance

03 sept. 2010, 16:27

J'ai essayé d'inserer le code mais cela ne fonctionne pas.

Je ne vois pas ou le place

Code : Tout sélectionner

<?php defined('_JEXEC') or die('Restricted access'); if( class_exists( "JATJPConfig" ) ) { $conf = new JATJPConfig(); } $session =& JFactory::getSession(); //$css = JURI::base().'components/com_formation/assets/style.css'; $document =& JFactory::getDocument(); //$document->addStyleSheet($css); JHTML::_('behavior.mootools'); $js =" function ajoutauselection(id){ $('sel'+id).setHTML(''); url = 'index2.php?option=com_formation&view=categorie&c=categorie&task=ajoutauselection&id='+id; var myRequest = new Ajax(url,{ method: 'get', onSuccess: function(responseText) { alert(responseText); }}).request(); }"; $document->addScriptDeclaration($js); jimport('joomla.html.html'); JRequest :: setVar('layout', 'default'); $js = "window.addEvent('domready', function(){"; $selection = $session->get('selection',false); //effacer les encient demande de session $pagenation = $this->pagination; $model = $this->model; $params = $this->params; $option = $this->option; $items = $this->items; $id=JRequest::getvar('id',0); ?> <br /> <table width="100%"><tr><td valign="top"> <?php if(count($items)){ $id_soustype = ''; foreach ($items as $item) { if($item->id_soustype != $id_soustype) { if( !empty($id_soustype) ) echo "</div>"; $id_soustype = $item->id_soustype; $detailssoustype2 = $model->getdetailssoustype2($id_soustype); $image = $detailssoustype2['soustype']->image; $nomsoustype = $detailssoustype2['soustype']->nom; $nomtype = $detailssoustype2['type']; echo '<div class="listlist">'; echo '<table width="100%" height="100%"><tr><td><img height ="139" src ="images/formation/soustype/'.$image.'" /></td><td width="100%" height="100%">'; echo '<div class="labeltxt"><label class="group">'.$detailssoustype2['type'].'</label><br><label class="type"> '.$detailssoustype2['soustype']->nom.'</label></div>'; echo '</td><td><img height ="139" src ="images/formation/soustype/'.$image.'" style="padding-left:10px" /></td></tr></table></div><div class="around-border"></div>'; if (count($detailssoustype2) < 2) echo '<div style="overflow:auto; height:50px; width:600px">'; else echo '<div style="overflow:auto; height:197px; width:600px">'; } $detailssoustype2 = $model->getdetailssoustype2($item->id_age_max); if($item->image_list) $image = 'images/formation/image_list/'.$item->image_list; else $image = 'images/formation/soustype/'.$detailssoustype2['soustype']->image; echo '<div class="listlist2">'; echo '<table width="100%" heigh="100%"><tr><td width="139">'; echo '<label class="soustype'.$model->getlieunom2($item->lieu).'">'.$model->getlieunom($item->lieu).'</label>'; echo '</td><td width="385" height="100%"><table width="100%" height="100%" ><tr><td colspan="2">'; echo '</td></tr><tr><td valign="bottom">'; echo '<b>'.JText::_('Age ').'</b>'.$item->age_afficher.'&nbsp;>&nbsp;<b>'.JText::_('Niveau ').'</b> '.$item->niveau.'<br>'; echo '<b>'.JText::_('Animé par ').'</b>'.$model->getnomanimateur($item->id_animateur).'<br>'; echo ''.$item->date_afficher.'&nbsp;'.$item->horaire_debut.'-'.$item->horaire_fin.''; echo ''; echo '</td><td width="33%" valign="bottom" align="right">'; echo '<b>'.$item->statut.'</b><br>'; if(@!in_array($item->id, $selection)) echo '<div id="sel'.$item->id.'"><input type="button" class="selectionner" onclick="ajoutauselection('.$item->id.')" /></div>'; echo '<a href="index.php?option=com_formation&view=details&id='.$item->id.'" class="link"> >> Lire la suite</a>'; echo '</td></tr></table></td></tr></table>'; echo '</div>'; } echo '</div>'; echo $pagenation->getListFooter(); } else { echo 'Pas des articles'; } ?>
Merci de votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 sept. 2010, 09:44

Le plus simple serait d'utiliser l'attribut css max-height plutôt que height.

Ainsi, si ton div fait moins que la hauteur max, la taille est adaptée au contenu. Tandis que si le contenu dépasse la taille max, alors le div ne dépassera pas la hauteur max et l'overflow se déclenchera :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...