11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous!

Je souhaiterais créer une barre de mise en forme simple (gras, italique, quelques couleurs... insertion d'image aussi!) et je me demandais comment est-ce que c'était possible, en Javascript?

En fait c'est pour mettre en forme un texte écrit dans un textarea et je voudrais que quand on le sélectionne, on clique sur un bouton qui le met par exemple en gras.

De plus, je voudrais savoir comment insérer une image. Je pense que ça marche avec l'upload d'une image (et une BDD derrière?) etc, mais comment la faire apparaitre dans le textarea en question?

Merci d'avance à tout ceux qui prendront du temps pour me répondre Smiley smile
Modifié par taggeur (24 Jun 2008 - 18:51)
Bonjour.

Je suppose que si tu poses la question c'est que tu ne connaît pas beaucoup JavaScript et comme les éditeurs WYSIWYG c'est pas ce qu'il y a de plus simple à réaliser je te conseillerai de regarder du côté de ce que qui existe déjà.
Je ne ne saurait te dire lesquels sont bien mais peut-être que d'autres pourront t'aider sur ce point ... Smiley smile
Modifié par Changaco (20 Jun 2008 - 09:55)
Je sais qu'on peut passer des propriétés CSS avec javascript, avec des getElementById(id).style.etc...

Je pensais faire comme ça. Je vais continuer à chercher Smiley smile
taggeur a écrit :
Je sais qu'on peut passer des propriétés CSS avec javascript, avec des getElementById(id).style.etc...

Je pensais faire comme ça. Je vais continuer à chercher Smiley smile
Sauf qu'à ma connaissance on ne peut pas styler une partie d'un textarea on est obligé de le styler entièrement.
Je reste sur ma position tu devrais chercher du côté de ce qui existe déjà.
Salut,
Comme changaco, je te conseille de te tourner vers une solution open source.
Tu as par exemple TinyMCE ou FCKeditor qui sont assez facile a mettre en place et tres parametrables...
Bonjour à tous!

J'ai donc installé FCKeditor, mais je rencontre un petit problème! Je voudrais que le cadre dans lequel on écrit soit le corps de la newsletter! C'est à dire que, lorsque je valide l'envoi de la news, je voudrais que ce que j'ai écrit apparaisse dans le mail.

Je vous mets le code que j'ai...

<?php
include_once("fckeditor/fckeditor.php") ;
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Rédaction d'une newsletter</title>

<link href="css.css" rel="stylesheet" type="text/css" />
</head>

<body>
<p align="center">Rédaction d'une newsletter</p>
<table align="center"><form name="newsletter" method="post" action="<?php echo $_SERVER['../PHP_SELF'];?>">
<tr><td>Titre</td><td> <input type="text" name="titre" value="" /></td></tr>
<tr><td>Newsletter :</td><td><?php
$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = 'http://www.jpcfrance.com/newsletter/fckeditor/' ;
$oFCKeditor->Value = '' ;
$oFCKeditor->Create() ;
?></td></tr>
<!-- <tr><td>Newsletter</td><td><textarea name="corps" height="500px" width="400px"/></textarea></td></tr> -->
<tr><td><input type="submit" name="envoi" value="Envoyer la news" /></td></tr>
</form>
</table>
<?php 
if(isset($_POST['titre'])){
$titre=$_POST['titre'];
$corps=$oFCKeditor->Value;
//Connexion à la base de données
mysql_connect("mysql4", "serveur", "mdpbdd") or die ('Erreur de connexion');
mysql_select_db("base") or die ('Erreur de sélection de la BDD');

//Insertion de la news dans la table newsletter puis récupération des mails
mysql_query("INSERT INTO newsletter VALUES('', '$titre', '$oFCKeditor->Value')") or die ('Erreur de requête');
//$req = mysql_query("SELECT Email FROM inscrits");
//$rep = mysql_fetch_assoc($req);

$requete = "SELECT Email FROM inscrits";

$result = mysql_query($requete) or die("Erreur lors de l'exécution de la requête :<br /><strong>$requete</strong>");

while($ligne = mysql_fetch_assoc($result))

{

	//echo 'email : '.$ligne['Email'].'<br />'; 



//Variable de la fonction mail
$destinataire=$ligne['Email'];
$sujet="Newsletter JPC";
//$message=$_POST['corps'];
$message ='<html><head><title>'.$_POST['titre'].'</title></head><body>'.$corps.'</body></html>'; 
$headers ='From: "JPC France" <info@jpcfrance.com>'."\n"; 
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit'; 

//Envoi du mail
mail($destinataire, $sujet, $message, $headers);
}
}
echo "<div align=\"center\">La newsletter a bien été envoyée!</div>";
}
?>
</body>
</html>


Le problème ici, c'est que le mail ne contient rien, juste du vide! Normal vous me direz, puisque $oFCKeditor->Value = ''. Pourtant j'avais tapé du texte dans le cadre prévu à cet effet. On dirait que le formulaire renvoie la variable $oFCKeditor->Value du début, vide et ne prend pas en compte ce que j'écris.

Comment faire pour remédier au problème? Smiley smile

Merci d'avance à tous Smiley smile
Modifié par taggeur (23 Jun 2008 - 19:42)
Bonjour,

Tu devrais commencer par envoyer ton formulaire à un script qui récupèrera les données pour les écrire en local (dans une base ou un fichier texte simple), pour vérifier que le problème est de ce côté et pas de celui de l'envoi de l'e-mail

a écrit :
Comment faire pour remédier au problème?

Comme toujours: en commençant par identifier clairement le problème (ce qui est le plus difficile la plupart du temps, certes). Smiley cligne
Modifié par Florent V. (23 Jun 2008 - 21:33)
Au départ, la variable est initialisée avec '<p>du texte</p>'

et le texte contenu dans le <p></p> s'affiche, une fois le mail envoyé.

Edit : de plus, j'ai testé la méthode mail mais en récupérant le contenu d'un textarea et ça marchait, donc je ne pense pas que la fonction mail() soit en cause Smiley smile
Modifié par taggeur (23 Jun 2008 - 21:42)
Problème résolu Smiley smile

Il suffisait de spécifier que le corps de la newsletter était en fait égal à $_POST['FCKeditor1'];