Ajouter des points de suspension dans une chaine de caracteres issue d'un BDD

cs_pfl34 Messages postés 12 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 8 novembre 2012 - 10 sept. 2010 à 21:34
cs_pfl34 Messages postés 12 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 8 novembre 2012 - 14 sept. 2010 à 18:07
Bonsoir à tous,

Je dois afficher un tarif pour plusieurs produits. Je ne maitrise pas la saisie des différents éléments (c'est le client). Pour faire "plus joli", je voudrais ajouter des ... (points de suspension) à la fin des libellés produits pour "aller" jusqu'à la colonne prix. Je ne peux pas vous donner le code, mon serveur est HS ...

Merci d'avance.




PFL34

5 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 sept. 2010 à 21:59
Salut,

Je ne peux pas vous donner le code, mon serveur est HS ...

Sans méchanceté aucune ça nous fait une belle jambe, ... que répondre ? ... il faut concaténer les résultats avec la string '...'

Et je n'ai rien compris au reste, peux tu être plus précis si cela à de l'importance ?

Cordialement,

Kohntark -
0
cs_pfl34 Messages postés 12 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 8 novembre 2012
11 sept. 2010 à 11:11
Salut Konhtark,

Merci d'avoir répondu malgré le manque de précisions sur la question ...

Concaténer d'accord mais le problème c'est que les libellés des produits sont, par nature, de tailles différentes.

Voici l'extrait du code où je lis la BDD pour afficher le tarif. Je n'en pas suis très fier (table) mais bon la prochaine je ferai un positionnement en CSS qui va bien.

<?php do
{ ?>
----

<?php echo $row_rs_soins['soin_nom']; ?>,
<!-- c'est la donnee "soin_description" que je voudrais compléter avec des ... (pas toujours le même nombre)
pour "aller" jusqu'à la cellule du prix "soin_prix_01" -->
<?php echo $row_rs_soins['soin_description']; ?>
<!-- -->,
<?php echo $row_rs_soins['soin_prix_01']; ?> €,
<?php echo $row_rs_soins['soin_promo']; ?>,
<?php echo $row_rs_soins['soin_marque']; ?>,

<?php } while ($row_rs_soins = mysql_fetch_assoc($rs_soins)); ?>



Encore pour ton aide.
PFL34
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 sept. 2010 à 12:59
Je n'en pas suis très fier (table)

Perso ça ne me choque absolument pas, et je dirai même que dans ce cas l'utilisation d'un tableau est bien plus approprié (présentation de données) que les CSS.

Comme toujours il y a pas mal de façons de faire : JS, CSS, PHP, ...

L'une d'entre elles pourrait ressembler à ça :
<?php
<?php do { ?>
----

//[...]
<?php
echo $row_rs_soins['soin_description'].' '.str_repeat('.', 300);
?>,
<?php echo $row_rs_soins['soin_prix_01'];?> €,
//[...]

<?php } while ($row_rs_soins = mysql_fetch_assoc($rs_soins)); ?>

?>


Ce n'est sans doute pas la solution la plus élégante, puisqu'elle ne tient aucunement compte de la largeur allouée, mais se contente de masquer ce qui sort de cette zone. Elle a cependant l'avantage de ne faire appel à aucun autre langage que HTML/CSS (le str_repeat() peut être écrit en dur (suite de points)) et devrait être compatible avec tous les navigateurs.

Il faudrait également gérer les cas où "soin_description" dépasse les 510px (revenir à la ligne, couper avec wordwrap(), ...)

En espérant t'avoir au moins donné une piste.

Cordialement,

Kohntark -
0
cs_pfl34 Messages postés 12 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 8 novembre 2012
11 sept. 2010 à 14:02
Alors là, vraiment merci car j'ai passé un moment sans trouver quoi que ce soit de correct.

Cà marche très bien. Je vais enrichir mon code pour me protéger du dépassement des 510 px.

Bonne fin de week-end.

Si je peux aider pour tes tests sur MODBUS, pourquoi pas mais je suis, tu l'as certainement compris, un peu ... débutant.

Bien cordialement,

Patrice
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pfl34 Messages postés 12 Date d'inscription vendredi 13 novembre 2009 Statut Membre Dernière intervention 8 novembre 2012
14 sept. 2010 à 18:07
Salut Konhtark,

C'était trop beau, çà va très bien sous FF mais pas du tout sur IE 6, 7, 8 ... A priori, FF gère correctement le "table-layout:fixed" même sans donner de valeur width aux différentes COL. Le "nowrap="nowrap"" ne sert pas à grand chose, les "width" et "max-width" non plus !

C'était bien quand même. Merci et bonne fin de journée.

PFL34

<!-- DEBUT TABLE -->
<?php do { ?>
----

<?php
echo $row_rs_soins['soin_nom']; ?>,
<?php
echo $row_rs_soins['soin_description'].' '.str_repeat('.', 150); ?>,
<?php
echo $row_rs_soins['soin_prix_01'];?> €,

<?php
}
while ($row_rs_soins = mysql_fetch_assoc($rs_soins)); ?>



PFL34
0
Rejoignez-nous