par
Clicky » 10 mars 2008, 00:42
Bonsoir,
Je ne sais pas si je poste au bon endroit vu que je ne sais pas si mon problème est de l'ordre du javascript ou du php, mais il faut bien poster quelque part..
Bref, j'essaie de mettre en place, un système de prévisualisation d'un texte issu d'un textarea venant d'un formulaire de post de forum.
le tout apparaît dans une pop-up, la mise en forme (bbcode : gras, italic, couleur et même code php, etc) y est presque complètement respectée, je dis presque parce que le texte perd ses retours à la ligne, et j'aimerais les lui remettre mais je n'arrive pas à trouver comment procéder.
le code du formulaire (épuré pour éviter d'en mettre trop long ici) :
Code : Tout sélectionner
<form method="post" action="postok.php?action=repondre&t=<?php echo $topic ?>" name="formulaire">
<p>
<fieldset><legend><strong>Mise en forme</strong></legend>
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
<br /><br />
<img src="../images/forum/smileys_bbcode/smile.gif" title="heureux" alt="heureux" onClick="javascript:smilies(' :huhu: ');return(false)" />
</fieldset>
<br /><br />
<fieldset><legend><strong>Message</strong></legend><textarea cols=95 rows=10 id="message" name="message"></textarea></fieldset>
<br />
<script language="javascript">
function previsu()
{
Message=document.formulaire.message.value;
Adresse='previsu_post.php?message=' + Message;
window.open(Adresse,'previsu', 'height=400, width=600, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no');
}
</script>
<input type="button" value="Prévisualiser" onClick="previsu();return false;" />
<input type="submit" name="submit" value="Envoyer" />
<input type="reset" name="Effacer" value = "Effacer" />
</p></form>
puis le code de réception du contenu du textarea dans la pop-up :
<?php
include("bbcode.php");
if (isset($_GET['message']))
{
if (!empty($_GET['message']))
{
$message = htmlentities($_GET['message']);
echo '<div id="previsu">'.code($message).'</div>';
}
else
{
echo '<div id="previsu">Le champ est resté vide.</div>';
}
}
?>
Auriez vous une idée d'une technique de remise en place des retours à la ligne ? J'ai essayé de lui appliquer un nl2br() à la réception mais ça ne change rien, peut-être qu'avec une fonction javascript équivalente à str_replace() de php, pourrait règler le problème..
Merci !
Bonsoir,
Je ne sais pas si je poste au bon endroit vu que je ne sais pas si mon problème est de l'ordre du javascript ou du php, mais il faut bien poster quelque part.. :?
Bref, j'essaie de mettre en place, un système de prévisualisation d'un texte issu d'un textarea venant d'un formulaire de post de forum.
le tout apparaît dans une pop-up, la mise en forme (bbcode : gras, italic, couleur et même code php, etc) y est presque complètement respectée, je dis presque parce que le texte perd ses retours à la ligne, et j'aimerais les lui remettre mais je n'arrive pas à trouver comment procéder.
le code du formulaire (épuré pour éviter d'en mettre trop long ici) :
[code]<form method="post" action="postok.php?action=repondre&t=<?php echo $topic ?>" name="formulaire">
<p>
<fieldset><legend><strong>Mise en forme</strong></legend>
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
<br /><br />
<img src="../images/forum/smileys_bbcode/smile.gif" title="heureux" alt="heureux" onClick="javascript:smilies(' :huhu: ');return(false)" />
</fieldset>
<br /><br />
<fieldset><legend><strong>Message</strong></legend><textarea cols=95 rows=10 id="message" name="message"></textarea></fieldset>
<br />
<script language="javascript">
function previsu()
{
Message=document.formulaire.message.value;
Adresse='previsu_post.php?message=' + Message;
window.open(Adresse,'previsu', 'height=400, width=600, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no');
}
</script>
<input type="button" value="Prévisualiser" onClick="previsu();return false;" />
<input type="submit" name="submit" value="Envoyer" />
<input type="reset" name="Effacer" value = "Effacer" />
</p></form>[/code]
puis le code de réception du contenu du textarea dans la pop-up :
[php]<?php
include("bbcode.php");
if (isset($_GET['message']))
{
if (!empty($_GET['message']))
{
$message = htmlentities($_GET['message']);
echo '<div id="previsu">'.code($message).'</div>';
}
else
{
echo '<div id="previsu">Le champ est resté vide.</div>';
}
}
?>[/php]
Auriez vous une idée d'une technique de remise en place des retours à la ligne ? J'ai essayé de lui appliquer un nl2br() à la réception mais ça ne change rien, peut-être qu'avec une fonction javascript équivalente à str_replace() de php, pourrait règler le problème..
Merci !