Forum d'entraide PHPFrance

Venez poser vos questions PHP, MySQL, HTML, CSS, Javascript, Gestion de serveurs à la communauté PHPfrance

Vers le contenu

» Masquer les résultats de la recherche

Recherche dynamique PHPfrance

  1. Effectuez une recherche, les résultats s'afficheront dynamiquement ici.

interligne sans <br>

Questions concernant le HTML, HTML5, xHTML et les CSS.

interligne sans <br>

Messagepar reso101 24 Juin 2007, 13:51

Bonjour à tous

Je cherche à régler un soucis en espérant que c'est un probleme HTML (je voudrai pas me faire gronder et pardon par avance si c'est plus du php).

Dans mon coté administrateur, quand je rajoute une "news" et quand je construis mon texte je fais des interlignes pour les espaces entre les paragraphes et dès que ma phrase atteint le bout du cadre, j'ai un retour à la ligne automatique.

Mais quand je regarde le résultat dans ma page, le cadre des NEWS n'affiche aucunes interlignes et les phrases n'ont pas de retour à la ligne. Il faut se déplacer avec l'ascenseur du bas pour finir la phrase.

Je connais la solution de rajouter des <BR> partout mais je souhaiterai savoir s'il existe une autre solution. J'ai pourtant cherché dans ce forum mais manquant cruellement de vocabulaire informatique je ne trouve rien.

Merci à tous
reso101
 

Messagepar Cyrano 24 Juin 2007, 13:56

En fait, c'est du PHP : lorsque tu récupères le texte, il faut remplacer les "\n" par des
: on fait ça avec nl2br() ;)

Mais c'est bien de l'enregistrer tel quel et de n'utiliser cette fonction QUE pour l'affichage.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:
Avatar de l’utilisateur
Cyrano
Ganesha
 
Messages: 19566
Inscription: 07 Fév 2005, 15:27
Localisation: Paris XIII

Messagepar Dosix 27 Juin 2007, 23:35

Bonsoir,

Je poste ici car reso101 a peu prêt le problème que moi, en effet je vous explique :

J’ai un formulaire et je voudrais que quand les gens postent un message qu’il y est les retours à la ligne quand ils appuient sur la touche Entrée de leurs claviers pour que cela affiche un <br/> dans le code.

Le tout est enregistré dans un fichier .txt.

Alors je ne sais pas si c’est la même procéder ou pas c’est pour ça que je vous demande car si c’est nl2br() j’ai pas compris comment l’utilisé.
Météo Gironde : la météo en Gironde et en Aquitaine : Dordogne, Landes, Lot et Garonne et Pyrénées Atlantique. Préventions des phénomènes violents en Aquitaine.

www.meteo-gironde.net
Dosix
Maitre du phpinfo()
 
Messages: 43
Inscription: 15 Déc 2006, 21:46
Localisation: Bordeaux

Messagepar Sékiltoyai 28 Juin 2007, 02:16

Si dans ta chaine, tu as des indicateurs de nouvelle ligne (\n), quand tu la passes dans nl2br(), les \n sont remplacés par des balises br. Exemple :
Syntaxe: [ Télécharger ] [ Masquer ]
Code php
$str = 'test\ntest';

echo nl2br($str); // affiche test<br />test
Avatar de l’utilisateur
Sékiltoyai
ViPHP
ViPHP
 
Messages: 5747
Inscription: 22 Avr 2007, 14:53
Localisation: Rennes

Messagepar Dosix 28 Juin 2007, 23:15

Merci j'y arrive

:wink:
Météo Gironde : la météo en Gironde et en Aquitaine : Dordogne, Landes, Lot et Garonne et Pyrénées Atlantique. Préventions des phénomènes violents en Aquitaine.

www.meteo-gironde.net
Dosix
Maitre du phpinfo()
 
Messages: 43
Inscription: 15 Déc 2006, 21:46
Localisation: Bordeaux

Messagepar Invité 01 Juil 2007, 15:01

:oops:

Merci pour votre aide à tous les deux...

Cependant je ne comprends pas une chose, ce code :

$str = 'test\ntest';
echo nl2br($str);

Je le place dans mon cadre "news", c'est à dire comme ça :


<table width="285" border="0" cellspacing="0" cellpadding="0">
<?
$prec=$row_rsnew['idstruc'];
$x=0;
while ($row_rsnew = mysql_fetch_array($rsnew)) {
$x++; ?>
$str = 'test\ntest';
echo nl2br($str);
<tr>
<td>
<span class="blancgras">
<?php echo $row_rsnew['titres']; ?>
</span><br>
<span class="blanc12">
<?php echo $row_rsnew['textes']; ?>
</span>
</td>
</tr>
<? }
?>
</table>

Ce n'est surement pas ça car ca ne change rien à part qu'il me marque sur ma page d'affichage de "news" 5 lignes : $str = 'test\ntest'; echo nl2br($str);

Pardon pour mon ignorance, je débute. Autrement dit je fais mais je comprends trop pourquoi je le fais ! Ca viendra, un jour, peut etre... J'ai espoir
Invité
 

Messagepar Cyrano 01 Juil 2007, 15:24

Probable que c'est à cause de ton utilisation de "<?" au lieu de "<?php" avec dans ta configuration une directive short_open_tag à OFF. Corrige ton code et refais l'essai.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:
Avatar de l’utilisateur
Cyrano
Ganesha
 
Messages: 19566
Inscription: 07 Fév 2005, 15:27
Localisation: Paris XIII

Messagepar Sékiltoyai 01 Juil 2007, 15:26

C'est du code php, pour qu'il soit exécuté, tu dois je mettre entre <?php et ?>.
Au passage, évite les short_tags ( <? ).
Avatar de l’utilisateur
Sékiltoyai
ViPHP
ViPHP
 
Messages: 5747
Inscription: 22 Avr 2007, 14:53
Localisation: Rennes

Messagepar Reso 101 01 Juil 2007, 16:23

J'ai fait les modif suggérées :

<div style="width:310px;height:140px; overflow:auto;">
<table width="285" border="0" cellspacing="0" cellpadding="0">
<?php
$prec=$row_rsnew['idstruc'];
$x=0;
while ($row_rsnew = mysql_fetch_array($rsnew)) {
$x++;
$str = 'test\ntest'; echo nl2br($str);
?>
<tr>
<td>
<span class="blancgras"><?php echo $row_rsnew['titres']; ?></span><br>
<span class="blanc12"><?php echo $row_rsnew['textes']; ?></span></td>
</tr>
<? }
?>
</table>
</div>

Pourtant :

J'ai 6 news dans ma liste
il est affiché dans mon cadre news 6 lignes cette façon :

test\ntest
test\ntest
test\ntest
test\ntest
test\ntest
test\ntest
2008
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffff
2007
Il devient membre de l'Académie Culinaire de
France. Obtention de quatre prix sur 5 au salon
Serbotel Atlantique
2006
Il entre dans la très select Association "relais
Dessert International", regroupant les 85
meilleurs patissiers-chocolatiers du monde.
2005
Il remporte le prix Goût et Santé, catégorie
sucré.
2004
Il ouvre un écrin de saveurs à la Baule...
2002
Il obtient 3 tablettes dans le Guide du
Club des croqueurs de Chocolat

Normalement sur la NEW 2008, au milieu des "eeeeeeeee" auraient du etre séparé par un retour à la ligne automatique de façon à ne pas déclencher l'ascenseur du bas et resté affiché dans les 285 px du tableau.

De plus l'espace entre la serie des "eeeeeeeee" et des "fffffff" est un retour à la ligne manuel qui n'est pas pris en compte non plus.

En tout les cas merci pour vos réponses précedantes
en espérant avoir été suffisament clair pour les réponses a venir
Reso 101
Embryon
 
Messages: 5
Inscription: 03 Juin 2007, 14:47

Messagepar Sékiltoyai 01 Juil 2007, 16:37

Merde, le con, je me suis gourré dans mon exemple. En fait, il ne faut pas mettre 'test\ntest' mais "test\ntest".
Dans 'test\ntest', il considère \n textuellement, dans "test\ntest", il voit \n comme un identificateur de nouvelle ligne.
Fait la modificatiion et ca devrait être bon...
Avatar de l’utilisateur
Sékiltoyai
ViPHP
ViPHP
 
Messages: 5747
Inscription: 22 Avr 2007, 14:53
Localisation: Rennes

Messagepar Invité 01 Juil 2007, 16:58

Désolé mais ça ne change rien a part que au lieu d'avoir 6 lignes de "test\ntest" j'ai 13 ligne de : test

et la news 2008 n'a toujours pas d'affichage contenu dans les 285 px de l'argeur

est ce du au fait que j'ai pour l'instant concervé les <br> dans les news 2007 à 2002 ? ou a tout ce qu'ils nous envoient dans l'espace. :shock:
Invité
 

Messagepar Sékiltoyai 01 Juil 2007, 17:54

Bah on t'as dit comment transformer des fins de ligne en balises br, ce n'est pas ce que tu cherchais ?
Avatar de l’utilisateur
Sékiltoyai
ViPHP
ViPHP
 
Messages: 5747
Inscription: 22 Avr 2007, 14:53
Localisation: Rennes

Messagepar reso101 01 Juil 2007, 19:29

pitete me suis je mal exprimé

Je souhaite avoir à rentrer du texte du cote administrateur sans mettre un quelconque balisage. Juste rentrer du texte comme dans un logiciel de traitement de texte, avec un retour ligne automatique au bout du cadre ou manuel avec "ENTREZ"

Mais quand je regarde le résultat du coté internot, tout le contenu du texte est sur une seule et meme ligne, sans retour ligne et sans paragraphe.

C'est juste ça que j'aimerai bien
merci bien pour ton ou votre aide
reso101
 

Messagepar Sékiltoyai 01 Juil 2007, 21:02

Alors, pour passer à la ligne avec Entrée, c'est la solution que je t'ai déjà donné, à savoir qu'à chaque fois que l'utilisateur fait Entrée, un caractère de nouvelle ligne : "\n" est inséré dans le texte. C'est ensuite avec une simple fonction nl2br() que tu transcris ces caractères à l'affichage en retours à la ligne, car dans un champ texte, les caractères \n renvoient à la ligne, mais lors d'un affichage normal, comme tu le sais, il faut des balises
pour se faire, d'où la fonction.

Bref, maintenant, si tu veux qu'une fois arrrivé à la fin du cadre, le texte revienne à la ligne automatiquement, c'est une autre paire de manches. Il faut que tu utilises un wordwrap. Il y en a en php ( fonction wordwrap() ), mais c'est indépendant de l'affichage donc c'est pas de ouf. Par contre tu en as un aussi en CSS, la propriété wordwrap : http://msdn2.microsoft.com/fr-fr/library/ms531186.aspx
Avatar de l’utilisateur
Sékiltoyai
ViPHP
ViPHP
 
Messages: 5747
Inscription: 22 Avr 2007, 14:53
Localisation: Rennes

Messagepar reso101 01 Juil 2007, 21:16

je vais étudier tout ça et merci pour ton aide
reso101
 

Suivante

Retourner vers HTML, HTML5, CSS

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités