Aller au contenu

formulaire, respecter la mise en forme d'un textearea


Sujets conseillés

Posté (modifié)

bonjour j'ai un petit probleme

j'ai écri un formulaire pour pouvoir mettre a jour facilemen un site : hotmail.msn.free.fr/edmftest/index2.php?page=admin

c'est un peu le bordel pour l'instant je l'avoue!!

doc on tape le texte dans la zone prévue pour sa et on envoi!!

puis le texte s'affiche directemen en dessous (a coté de login et mot de passe)

mais si je fait par exemple plusieurs espaces comme sa : bonjour . . . . . sa. . . . va? ? ?

il ne retranspose pa sa quand il récupere les infos!! (EDIT : ah bah mince sur votre forum non plus sa ne les respecte pas...

j'ai remplace les espaces par des points ... mais je croi que c'est possible si je me souvien bien de certains forums...)

que dois je rajouter a sa?? <? echo $donnees['contenu']; ?>

ou a sa

<textarea name="contenu" rows="8" cols="35" type="text" ><?php echo $donnees['contenu']; ?> </textarea>

<input type="submit" value="Envoyer" />

pour que a l'affichage sa respecte mes espaces (je sais déja que pour les "entré" c'est nl2br )

(et sinon le formulaire de ce forum il est fait en quoi?? sa fonctionne comment?? parce que a terme en fait il me faudrait un formulaire aussi complet que celui la... )

merci

Modifié par jeje59350
Posté (modifié)

Salut,

insere le code ci dessous avant d'afficher ta chaine de caractères:

$chaine = preg_replace("/ /", " ", $chaine);

Ca remplace les espaces par leur entité HTML ( )

A+

PS : Le formulaire de ce forum utilise la technologie Ajax (corrigez moi si je me trompe...Je viens de vérifier, et c'est bien le cas...Ca fait bientot 4 mois que je l'ai rempli ce formulaire). Le principe de fonctionnement utilise JavaScript pour faire des requêtes sur le serveur... En tapant "Ajax" sur Google, tu trouveras certainement plein d'info! ;)

Modifié par Bourinho
Posté

Bourinho, ton code fonctionne, mais il n'est pas des plus performants.

Dans ce cas, il vaut mieux utiliser la fonction str_replace, moins gourmande.

str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace. Si vous n'avez pas besoin de règles de remplacement compliquées, utilisez cette fonction de préférence à ereg_replace() et preg_replace().

Pour ce qui est des espaces, où que ce soit sur internet, effectivement, le navigateur interprétera une suite d'espaces comme un seul.

La solution de bourinho permet de transformer chaque espace en espace insécable, mais elle a l'inconvénient de son avantage : le navigateur ne fera pas de retour à la ligne lorsqu'il n'aura plus de place pour afficher la suite de la phrase.

On peut également envisager de mettre ton texte dans des balises <pre>, stylées en CSS pour ressembler à quelque chose de plus propre (mais sémantiquement, c'est pas ça).

Je viens aussi de tester avec l'attribut CSS "white-space: pre;", mais ça ne semble pas fonctionner sous IE6.

Pour finir: pourquoi as-tu besoin de respecter ces espaces ? Tu les utilises pour une mise en page ?

Posté

Salut,

J'ai besoin d'un éclaircissement :blush:

Je re-site le manuel php :

"Si vous n'avez pas besoin de règles de remplacement compliquées, utilisez cette fonction de préférence à ereg_replace() et preg_replace()."

Ce qu'ils appellent "règle de remplacement compliquée", c'est les Regex??? :wacko:

Par avance, merci

Posté

Une "règle de remplacement compliquée", c'est effectivement quelque chose qui implique l'utilisation des expressions régulières (regex en VO, expreg en français ;))

Dans le cadre du remplacement d'un caractère par un autre (ou d'une liste de caractères par une liste d'autres), donc d'une "règle de remplacement simple", il vaut mieux utiliser une fonction spécialisée dans ces remplacements simples (comme str_replace), moins gourmande en ressources.

Posté

Je vais tester ces quelques methodes!! merci!

par contre je n'ai pas compri le truc de la balise <pre> avec css (mais de toute facon ie gere extremement mal le css... je prefere ne pas trop lui en demander...)

puis j'aimerais que sa gere les espaces parce que les gens qui utiliseront ce formulaire seront débutants... je fait sa pour leur permettre de mettre a jour simplement et rapidement leur site... et la mise en forme peut etre un peu compliqué dans certain cas...

en gros le truc qui serait cool c'est que le formulaire puisse ressembler le plus possible a word si voyez ce que je veux dire!!

j'ai un peu peur que l'abondance de balise les effraye!!

genre si il veulent mettre en gras du texte , ils ne vont pas le voir gras mais ils vont voir les deux balises b et /b

sa risquent de les perturber croyez moi :s...

donc si quelqu'un par miracle connaitrait une technique qui puisse faire en sorte que le FORMULAIRE RESSEMBLE LE PLUS POSSIBLE A WORD... je suis preneur!!

c'est d'ailleur pour sa qu'en dessous j'ai fait un include ac la page qui est en train d'etre modifiée... (faudrait que jtrouve un systeme pour que sa s'actualise assez souvent enfin bref sa risque d'etre complexe :s...parce qu'il faudrait que le formulaire se valide tout les x sec et sa ... c'est pas trop ossible enfin voila koi :s...)

Posté

J'ai donc rajouter sa <? $donnees = preg_replace("/ /", " ", $donnees); ?>

et il gere effectivement les espaces mais ne gere plus les entres!!

comment faire pour gerer les deux?? (je suis newbi desolé!!)

si je rajoute $donnees = nl2br($donnees) ;

il me fait un gros... caca nerveux... lol

merci d'avance

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...