Bonjour à vous,
Me voilà face à un problème que je trouve insoluble... Je récupère des catégories dans une base Mysql et je veux afficher cette liste de catégories comme suit : un index alphabétique (1er caractère de chaque catégorie), et au survol de la lettre, la liste des catégories en toutes lettres. (en dessous). Mon problème réside dans l'affichage des catégories en toutes lettres. Je suis dans une <div> 'imbriquée', et le texte dépasse sur la droite de manière aléatoire. En creusant la question, je me suis aperçu que la liste des catégorie ($output_tags dans le code qui suit) est géré comme 1 mot unique ! Le texte coupe donc que là où la catégorie comporte un espace (par exemple : jeux vidéos), mais pour le reste: pas de coupure donc ça dépasse de ma <div>...
Bon, j'espère que vous arrivez à me coimprendre... et que vous pourrez me mettre sur la voie...
Le code (là aussi, c'est sûrement pas du très propre...) :
J'ai allégé un peu avec [...].
Merci à vous !
N'hésitez pas à demander si vous souhaitez plus d'info.
Je précise tout de même que j'appelle cette 'page' avec une requete http ('ajax'), si ça a son importance...
Modifié par fretoune (06 Aug 2006 - 14:19)
Me voilà face à un problème que je trouve insoluble... Je récupère des catégories dans une base Mysql et je veux afficher cette liste de catégories comme suit : un index alphabétique (1er caractère de chaque catégorie), et au survol de la lettre, la liste des catégories en toutes lettres. (en dessous). Mon problème réside dans l'affichage des catégories en toutes lettres. Je suis dans une <div> 'imbriquée', et le texte dépasse sur la droite de manière aléatoire. En creusant la question, je me suis aperçu que la liste des catégorie ($output_tags dans le code qui suit) est géré comme 1 mot unique ! Le texte coupe donc que là où la catégorie comporte un espace (par exemple : jeux vidéos), mais pour le reste: pas de coupure donc ça dépasse de ma <div>...
Bon, j'espère que vous arrivez à me coimprendre... et que vous pourrez me mettre sur la voie...
Le code (là aussi, c'est sûrement pas du très propre...) :
$prevFirstChar = '';
$currFirstChar = '';
$output_tags = '';
$tag_compteur = 0;
$tag_index = NULL;
$requete = "SELECT DISTINCT category FROM scCategories ORDER BY category";
$result = mysql_query($requete) or die(mysql_error());
while ($tag = mysql_fetch_array($result)) {
$currFirstChar = utf8_substr($tag['category'], 0, 1);
if (0 != strcasecmp($currFirstChar, $prevFirstChar)) {
if (!is_null($tag_index)) { $output_tags .= '</div>'; }
$output_index .= '<a href="#" onmouseover="[...]">'.$currFirstChar . '</a> ';
$prevFirstChar = $currFirstChar;
$tag_index = $tag_compteur;
$output_tags .= '<div id="div_tag_'.$tag_compteur.'" style="display:none;">';
$tag_compteur++;
}
$output_tags .= '<a href="#" style="margin:3px;" onclick="copy_cat(this.innerHTML); return false;">'.stripslashes($tag['category']).'</a>';
};
$output_tags .= '</div>';
echo $output_index;
echo $output_tags;
J'ai allégé un peu avec [...].
Merci à vous !
N'hésitez pas à demander si vous souhaitez plus d'info.
Je précise tout de même que j'appelle cette 'page' avec une requete http ('ajax'), si ça a son importance...
Modifié par fretoune (06 Aug 2006 - 14:19)