Posez votre question Signaler

Textarea avec php [Résolu]

laurent75014 10Messages postés 15 mars 2007Date d'inscription - Dernière réponse le 3 déc. 2011 à 19:43
Bonjour,
j'ai créé un formulaire remplissant une base mysql.
il a un plusieurs champs a saisir avec certains obligatoires.
En cas de non renseignement d'un champs obligatoire, le formulaire reste affiché et les données deja saisies restent elles aussi dans les champs.
Avec
<input type="text" name="nom" size="27" value="'.$nom.'">
Ca fonctionne tres bien.
Mais avec
<textarea name="descrip" cols="50" rows="7" value="'.$descrip.'"> </textarea>
le contenu disparait, le "textarea" a t'il une particularité en moins que le "text"?
Autre probleme lié, les retour ligne du textearea se tranforment en "espace" dans ma base mysql.
Y a t'il un moyen de prendre en compte les retour chariot ?
Merci d'avance pour votre aide precieuse.
laurent
Lire la suite 

Textarea avec php »

12 réponses
Réponse
+21
moins plus
Un peu plus tard, mais ca pourra toujours servir aux suivants :

nl2br($maChaine);
Ajouter un commentaire
Réponse
+14
moins plus
Bonjour,

c'est normal pour ton textarea, n'oublie pas que le textarea ne s'utilise pas avec "value" mais comme ceci :

<textarea name="descrip" cols="50" rows="7"><?=$descrip;?></textarea>

Enfin pour les retour charriots, au moment de l'envoi dans ta base de données tu peux faire :

// la variable post
$descrip = $_POST["description"];
// on remplace le retour charriot par <br>
$descrip = str_replace('\r\n','<br>',$descrip);

J'espère que ça t'aidera, bonne journée

Thomas
Ajouter un commentaire
Réponse
+5
moins plus
Tablarock,
oui c'est possible mais ce n'est pas le sujet. Enfin tiens prends ça quand même:
tu crées le fichier mail.html

<html>
<body>
<!-- pour les tests sur les champs, voir avec javascript ou php -->
<form method="post" action="mail.php">
	Pseudo :<br />
	<input type="text" name="pseudo" id="pseudo" tabindex="10"/><br />
	 
	E-mail :<br />
	<input type="text" name="email" id="email" tabindex="30"/><br />

	Objet :<br />
	<input type="text" name="objet" id="objet" tabindex="30"/><br />

	Votre message :<br />
	<textarea name="message" id="message" cols="40" rows="4" tabindex="80"></textarea><br />

	<input type="submit" /> <input type="reset" />
</form>

</body>
</html>


puis le fichier mail.php

<?php 
	 ini_set("SMTP","nom du SMTP de ton FAI");  //n'oublie pas de changer le nom du serveur d'envoi
	 
/************* On récupère les données ****************/
	 $pseudo = $_POST['pseudo'];
	 $email = $_POST['email'];
	 $objet = $_POST['objet'];
	 $message = $_POST['message'];

/************* On ne prend pas en compte l'exécution des balises possible *****************/
	 $pseudo = htmlspecialchars($pseudo);
	 $email = htmlspecialchars($email);
	 $objet = htmlspecialchars($objet);
	 $message = htmlspecialchars($message);
	 
/************* On prépare l'envoi *******************/
     $headers ='From: '.$pseudo.'<'.$email.'>'."\n"; 
     $headers .='Reply-To: '.$email."\n"; 
     $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 

/************* On teste les données et on envoie si c'est OK *******************/
	 if($pseudo && $email && $objet && $message)
	 if(filter_var($email, FILTER_VALIDATE_EMAIL)) //On test l'adresse email
	 //Noublie pas de mettrel'adresse de destination
     if(mail('adresse mail de destination', $objet, $message, $headers)) //Attention le serveur que tu utilises ne prend peut-être pas en compte la fonction d'envoi d'email
     { 
          echo '<script type="text/javascript">alert("Le message a bien été envoyé")</script>'; 
     } 
     else 
     { 
          echo '<script type="text/javascript">alert("Le message n\'a pu être envoyé")</script>'; 
     } 
	 else
	{
	echo '<script type="text/javascript">alert("Adresse e-mail invalide")</script>';
	}
	 else
	 {
		echo '<script type="text/javascript">alert("Veuillez renseigner tous les champs.")</script>';
	}

/************* On retourne sur la page précédente ******************/
	echo '<a href src="mail.html">Retourner au formulaire<a/>'; 
?>


En espérant vous aider
Ajouter un commentaire
Réponse
+2
moins plus
Salut !
J'ai le même soucis. Le but étant de garder la même mise en page que lorsqu'on écrit dans le text area. Pour les retour chariot ok, mais pour les espace...

Je vient de trouver cette solution :

Pour les espaces je fait sa :

str_replace(" ", "&nbsp; ", $chaines_caractaires)


Sans oublier l'espace aprés   sinon sa ne passe pas à la ligne. J'ai testé avec qui devrai donner un espace qui passe à la ligne mais ca ne fait rien du tout.

Cela dit, je ne sais pas qu'elle est la syntaxe \? pour les espace. Et j'aimerai bien avoir une solution avec des espaces "normaux".
PAT54 - 13 oct. 2010 à 00:16
style="white-space: normal;"
Ajouter un commentaire
Réponse
+1
moins plus
Merci beaucoup
Ajouter un commentaire
Réponse
+1
moins plus
Merci, ça m'a servit aussi.

J'ai un autre problème dans le même sujet ...
Comment faire pour conserver les espaces dans le passage du textarea vers la base de donnée ??

Car dès qu'il y a plusieurs espaces, il n'en reste plus qu'un ...
Ajouter un commentaire
Réponse
+1
moins plus
Merci, ça a été effectivement utile !
Ajouter un commentaire
Réponse
+1
moins plus
Bonsoir à toutes et tous,

Je me retrouve bloquée bêtement par un truc que je ne comprends pas du tout... :
les retours à la ligne avec textarea...
Impossible...
Je vous écris ci-dessous ma syntaxe qui permet d'écrire le message :

<td><table width="630">
<tr>
<td width="300"><textarea name="message_content" cols="100" rows="10" class="contentfont"></textarea></td>
<div style="padding: 2px;">
<input name="form_post_question" type="submit" id="form_post_question" value="<?=GMSG_SUBMIT;?>" />
</div>
</table>

J'ai eu beau mettre dans la balise textarea un wrap="virtual" ou un wrap="physical" lorsqu'on relit le message c'est du grand n'importe quoi.... :)

Comment valider les retours charriot fait par les utilisateurs pour qu'à l'affichage ce soit correct et "beau" ??!!

Merci beaucoup pour votre aide... Je suis nulle et là, je craque... :)
Ajouter un commentaire
Réponse
-6
moins plus
Bonjour, je voudrais moi que la personne écrive du text dans le textarea et qu'elle apuis sur envoyer et je reçois ça par mail . Est - ce possible ?

Félix
gaerebut - 17 févr. 2011 à 16:20
Oui
webprog - 3 déc. 2011 à 19:43
oui biensure
Ajouter un commentaire
Ce document intitulé « textarea avec php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook