Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Florian, Wistaro
Auteur Sujet: Répondre sur le forum ?

Florian

Messages: 73

Hello,


Sur mon forum je souhaiterais faire un Reply, mais comment faire ? avez-vous une piste a me donner car je sais pas comment faire ça

Un exemple ( sous Xenforo ) 

Comment faire ceci ? un peu de JS je suppose ?
Publicité

Aendawan

Messages: 67

Effectivement, avec du JS. Il suffis que quand tu clique sur "répondre" tu prends le contenu du message (genre si c'est dans une div), et de le mettre dans ton textaera entre [quote="pseudo" ...] . Ainsi tu pourrais même répondre à plusieurs messages en même temps dans une même réponse.

Florian

Messages: 73

Niveau JS c'est pas du tout ça :x tu pourrais un peux m'éclaicir, si tu aurais un tuto ou autre ? :x

Aendawan

Messages: 67

Malheureusement, je ne suis pas fort en JS, je n'ai que la théorie. Essaie de regarder sur google :/

Wistaro

Messages: 76

Salut, pour écrire dans ton textarea de texte, tu peut utiliser
document.leNomDeTonFormulaire.idDeTnInputTexte.value='valeur a mettre'
Pour récupérer du texte sélectionné, tu peux passer par cette petite routine en js, qui fonctionne sous tout les navigateurs.

function getSelected() {
   if(window.getSelection) { 
      return window.getSelection(); }   e
    else if(document.getSelection) { 
       return document.getSelection(); }
   else {
      var selection = document.selection && document.selection.createRange();
      if(selection.text) { 
         return selection.text; }
      return false;   }
   return false;}

Donc si on résume ton code pourrait ressembler à ça:

<script langage="text/javascript">
 var selection = getSelected();
 if(selection != NULL){
      
   var ancien_rep = document.getElementById("id_de_ton_textarea_de_rep");
   var new_rep = ancien_rep + "[quote=USER]\n"+selection+"[/QUOTE]\n"+ancien_rep;
    document.leNomDeTonFormulaire.idDeTnInputTexte.value=new_rep;
}

</script>
Voilà en gros le principe. Je garanti pas que le code fonctionne, j'ai pas testé, mais le principe de base est là. 

Après pour récupérer le USER, tu peux procéder par différentes manières. Soit tu fait une recherche de toutes tes réponses pour savoir à qui correspond ce morceau de code, soit du regarde ou ce situe le message dans la page et tu en déduit son ID...A toi de voir Sourire

Florian

Messages: 73

Ok, j'ai fait ceci

<!DOCTYPE html>
<html>
<head>
   <script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.js"></script>
   <script type='text/javascript'>//<![CDATA[
   $(window).load(function(){
   $(function() {
       
       var $answer = $('#answer');
       var $answerTa = $answer.find('textarea');
     
       $('.quote').click(function(e) {
           var parent = $(this).parent().parent();
           var author = parent.find('a').text();
           var authorid = parent.find('a').attr('idP');
           var postContent = parent.find('p').text();
           var quote = '<blockquote><p><a href="./profil.php?id=';
           quote += authorid+ '">' +author+ '</a></p><br>' +postContent+'</blockquote>';
           var answerTaContent = $answerTa.val();
           $answerTa.val(answerTaContent+quote);
           $('html, body').animate({
           scrollTop: $answer.offset().top
           }, 500);
       });
   });
   });
   </script>
  
</head>
<body>
<tr style="display: block" name="1" id="1" class="1">
   <td><a href="" idP="11">Pseudo1</a></td>
   <td class="message"><p>Message</p><button class="quote" type="button"> Citer </button></td>
</tr>
<tr style="display: block">
   <td><a href="" idP="20">Pseudo2</a></td>
   <td class="message"><p>Messag2</p><button class="quote" type="button"> Citer </button></td>
</tr>
<div class="answer" id="answer">
    <label for="answer-content">Répondre</label>
    <textarea id="answer-content" rows="10" cols="50"></textarea>
</div>
  
</body>
</html>

Le problème c'est que ça ressort ça :x
<blockquote><p><a href="./profil.php?id=11">Pseudo1Pseudo2</a></p><br>MessageMessag2</blockquote>


Veuillez vous connecter ou créer un compte pour poster une réponse