retour a la ligne dans un textarea et commentaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : retour a la ligne dans un textarea et commentaire

Re: retour a la ligne dans un textarea et commentaire

par Ryle » 14 sept. 2016, 14:47

Hello !

C'est pas vraiment la fonction "inverse", un nl2br, contrairement à ce que son nom peut laisser penser ne "remplace" pas les retours à la ligne par des balises <br /> mais ajoute ces balises et conserve les retours à la ligne.

Pour revenir en arrière, il suffit donc juste de supprimer les <br/> qui ont été ajoutés, sans quoi tu risques de doubler tous tes retours à la ligne :)

Ryle - mode pinailleur activé :p

Re: retour a la ligne dans un textarea et commentaire

par moogli » 13 sept. 2016, 17:27

faut la fonction invers (str_replace('<br/>',PHP_EOL,$value).


@+

Re: retour a la ligne dans un textarea et commentaire

par Spols » 13 sept. 2016, 16:57

<textarea name="{$name}" id="{$label_attr.for}" placeholder="toto \n tutu \n tata" rows="6" class="form-control"{if $required} aria-required="true" required{/if}>{$value}</textarea>
Est-ce que ca marche avec des \n à la place des br ?

Re: retour a la ligne dans un textarea et commentaire

par moogli » 13 sept. 2016, 15:11

salut,

tu peux forcément utiliser nl2br avant de filer les données à manger à smarty (quoi de d'habitude c'est l'inverse)

quand tu récupères les données avant de mouliner le template tu fais un $value = nl2br($value).

sinon smarty propose un truc pour cela
http://www.smarty.net/docsv2/fr/languag ... .nl2br.tpl

==> {$value|nl2br}

@+

Re: retour a la ligne dans un textarea et commentaire

par vic35 » 13 sept. 2016, 15:04

Hello, je déterre ce post car j'ai le même besoin.

Code : Tout sélectionner

<textarea name="{$name}" id="{$label_attr.for}" placeholder="toto <br /> tutu <br /> tata" rows="6" class="form-control"{if $required} aria-required="true" required{/if}>{$value}</textarea>
donc les br ne fonctionnent pas. je ne peux pas mettre de php dedans, c'est smarty., je peux mettre quoi ?

quelqu'un pour me conseiller, je ne trouve pas que mettre..

Re: retour a la ligne dans un textarea et commentaire

par dryland » 03 févr. 2016, 14:32

En faite le systeme c'est smarty j'ai tester j'ai utiliser l'aide a mettre dans le champ de saisie ca fonctionne je vous remercies.
j'ai tester les retourns a la ligne de php echo "\n"; pour le reste je ne peux pas trop modifier le code tous simplement parce que je ne sais pas comment le developpeur traite les donnees... pourtant y a des php et des fichier.tpl
moi qui etait deja novice en php avec smarty je m'y perds un peu. mais comme je disais ca viendra.

En tout cas grand merci a tous et phpfrance.com je vais faire des copy de sauvegarde et essayer la valeur nl2br()

Bonne soiree.et bon nouvel an chinois.

Re: retour a la ligne dans un textarea et commentaire

par ynx » 03 févr. 2016, 12:52

Salut,

Effectivement lorsque tu affiches un texte saisie dans une balise textarea, les sauts de ligne ne sont pas affichés en html. Le plus simple est d'utiliser la fonction nl2br() pour convertir les sauts de ligne en balise br.

Tu peux saisir des sauts de ligne en php à l'intérieur du textarea en utilisant la représentation \n. Attention à bien utiliser des guillemets doubles pour interpréter ces caractères :
echo "\n"; // affiche un saut de ligne
echo '\n'; // affiche \n
Enfin pour afficher un message d'aide, il faut utiliser l'attribut html placeholder sur la balise textarea. Cette dernière doit être vide (aucun espace également dans le code source html) pour que le message s'affiche.

Quelques exemples :
<?php
if (!empty($_POST['text'])) {
	// affichage sur plusieurs ligne avec nl2br
	echo nl2br($_POST['text']);
}
?>

<form method="post">
<!-- Exemple de saisie dans un textarea -->
<textarea name="text">
1ère ligne
2ème ligne
<?php echo "3ème ligne\n4ème ligne"; ?>
</textarea>

<!-- Exemple de placeholder -->
<textarea name="exemple2" placeholder="Mon message d'aide"></textarea>

<!-- Le placeholder de ce textarea ne peut pas s'afficher car il n'est pas vide (un espace affiché) -->
<textarea name="exemple" placeholder="Mon deuxième message"> </textarea>

<input type="submit" value="OK">
</form>
Bonne journée

Re: retour a la ligne dans un textarea et commentaire

par Spols » 03 févr. 2016, 12:45

Essaye un nl2br() sur ta fiche, si le client fait une nouvelle ligne, le textarea va la retenir , mais il ne sera pas affiché en html (seulement dans le code source)
Pour ton texte d'aide, soit tu le mets en dehors de ta textarea et il sera toujours visible soit tu utilise l'attribut placeholder qui resemble plus à ce que tu cherche

retour a la ligne dans un textarea et commentaire

par dryland » 03 févr. 2016, 12:00

Bonjour
voici mon code du text area que le vendeur remplit dans un text area.

Code : Tout sélectionner

<div class="form-group" id="alert_ship_info"> <label>Discount Price Per Quantity </label> <textarea name="discount_per_quantity" class="form-control" rows="3"> end each line per <br> {$sucess_product_details[0].discount_per_quantity}</textarea> </div>
le problem dans ce textarea je n'arrive pas a mettre un retour a la ligne
si le vendeur ecrit par exemple

10 pieces 10 euros
20 pierces 20 euros

cela s'affiche sur sa fiche produit sur la meme ligne.
10 pieces 10 euros 20 pierces 20 euros

autre chose je voulais savoir dans les text area ou dans le nom du champ si le retourn a la ligne n'est pas possible leur indiquer de rajouter /n or <br> a chaque fin de ligne.
quand le rendre l aide merci de mettre <br> a chaque fin de ligne. le navigateur me fait le retour chariot j'ai essayer de mettre
"/<br/" le problem il n'affiche pas que le <br>

De plus si je mets l'aide dans le champ de saisie , lorsque le vendeur clique pour remplir le champ le text d'aide ne disparait pas par enchantement c'est normal?


voila j'espere pouvoir trouver la solution.

a plus et merci