Espace commentaire.

Résolu/Fermé
Legrandfifou Messages postés 109 Date d'inscription samedi 3 mai 2014 Statut Membre Dernière intervention 17 mars 2017 - Modifié par Legrandfifou le 26/08/2016 à 16:20
Legrandfifou Messages postés 109 Date d'inscription samedi 3 mai 2014 Statut Membre Dernière intervention 17 mars 2017 - 28 août 2016 à 22:56
Bonjour, je suis actuellement entrain de créer un espace commentaire en dessous de chaque post que je crée. Cependant tout les posts s'affiche l'un en dessous de l'autre et donc j'ai créer une boucle while() regroupant tout les articles de ma BDD.

while($donnees_post_affichage = $req_post_affichage->fetch())
           {

           $pseudo_affichage = $donnees_post_affichage['pseudo'];
           $title_affichage = $donnees_post_affichage['title'];
           $message_affichage = $donnees_post_affichage['message'];
           $id_affichage = $donnees_post_affichage['id'];

        echo "<div class='post_affichage'>

        <div class='title_affichage'>".$id_affichage.".  ".$title_affichage."</div>

        <div class='pseudo_affichage'>  by ".$pseudo_affichage."</div>
        <div class='message_affichage'>".$message_affichage."</div>
         <div class='commentaire'>
          <FROM action='' method='POST'>
           <img src='membres/avatar/".$profile_picture."' class='commentaire_image_case'/>
           <textarea name='commentaire_case_$id_affichage' class='commentaire_case' placeholder='Ecrire un commentaire...'></textarea>
           <input type='submit' name='commentaire_envoi_$id_affichage' class='commentaire_envoi'>
          </from>
         </div>
        </div>

        ";
        }


Mais si l'utilisateur clique sur le bouton d'envoi comme c'est le même bouton pour chaque post j'ai décider d'ajouter le
 $id_affichage
comme ceci
name='commentaire_envoi_$id_affichage'
pour que chaque bouton d'envoie soit différent des autres.. Malheureusement lorsque je passe a la vérification du 'cliquage' du bouton je bloque car j'ai procéder comme cela

  if($pseudo)
      {

       if (isset($_POST["commentaire_envoi_$id_affichage"]))
       {
        echo 'coucou';
       }
      }
       


Mais ca ne fonctionne pas et je pense savoir pourquoi puisque le $id_affichage pourrait être nimporte le quel j'aimerais donc qu'il prenne en compte tout les $id_affichage et qu'il regarde le quel est le bon :) Je n'ai pas trouver comment faire c'est pour cela que je viens à vous :) Merci à ceux qui m'aideront ^^

2 réponses

Legrandfifou Messages postés 109 Date d'inscription samedi 3 mai 2014 Statut Membre Dernière intervention 17 mars 2017 5
Modifié par Legrandfifou le 28/08/2016 à 22:57
Après de multiple essai et des recherches et de concentration surtout :p J'ai réussi ! Voici le code :)


<?php


      $sql_print_post = 'SELECT * FROM post ORDER BY id DESC';
      

      $params = array(":pseudo" => $pseudo,
          ":title" => $title,
          ":message" => $message);

      
      try 
       {

          $req_post_affichage = $bdd->prepare($sql_print_post);
          $req_post_affichage->execute($params);

       } 

      catch(Exception $e) 
       {
       
          echo "<br>ERREUR ! ".$e->getMessage()."<br>";
          echo "<br>params : <br>";
       }
        ?><script type="text/javascript">
              <!--
                  function maxlength_textarea(id, crid, max)
                  {
                      var txtarea = document.getElementById(id);
                      document.getElementById(crid).innerHTML=max-txtarea.value.length;
                      txtarea.onkeypress=function(){eval('v_maxlength("'+id+'","'+crid+'",'+max+');')};
                      txtarea.onblur=function(){eval('v_maxlength("'+id+'","'+crid+'",'+max+');')};
                      txtarea.onkeyup=function(){eval('v_maxlength("'+id+'","'+crid+'",'+max+');')};
                      txtarea.onkeydown=function(){eval('v_maxlength("'+id+'","'+crid+'",'+max+');')};
                  }
                  function v_maxlength(id, crid, max)
                  {
                      var txtarea = document.getElementById(id);
                      var crreste = document.getElementById(crid);
                      var len = txtarea.value.length;
                      if(len>max)
                      {
                          txtarea.value=txtarea.value.substr(0,max);
                      }
                      len = txtarea.value.length;
                      crreste.innerHTML=max-len;
                  }
              -->
              </script>
           





              <?php
       
      

       while($donnees_post_affichage = $req_post_affichage->fetch())
                {

                $pseudo_affichage = $donnees_post_affichage['pseudo'];
                $title_affichage = $donnees_post_affichage['title'];
                $message_affichage = $donnees_post_affichage['message'];
                $id_affichage = $donnees_post_affichage['id'];
 
          $commentaire = htmlspecialchars($_POST['commentaire_case']);
          $identification_post = htmlspecialchars($_POST['identification_post']) ;
                
               echo "<div class='post_affichage'>

               <div class='title_affichage'>".$id_affichage.".  ".$title_affichage."</div>

               <div class='pseudo_affichage'>  by ".$pseudo_affichage."</div>
               <div class='message_affichage'>".$message_affichage."</div>
                <div class='commentaire'>
                 <form action='' method='POST' name='formulaire'>
                  <img src='membres/avatar/".$profile_picture."' class='commentaire_image_case' />
                  <textarea id='textarea_1' cols='35' rows='4' name='commentaire_case' class='commentaire_case' placeholder='Ecrire un commentaire...'></textarea>
                  <div class='caracteres_limit'>Il vous reste <span id='carac_reste_textarea_1'></span> caractères.</div>
                  <br />
                  <br />
                  <button type='submit' name='commentaire_envoi' class='commentaire_envoi'>Envoyer</button>
                  <input type='hidden' name='identification_post' value='".$id_affichage."' />
                 </form>
                 <br />
                 <br />
                 <div class='affichage_commentaire'>
                 ";
                ?><script type="text/javascript">
               <!--
                   maxlength_textarea('textarea_1','carac_reste_textarea_1', 300);
               -->
           </script><?php

                $sel = 'SELECT * FROM commentaire WHERE id_post = :id_post ORDER BY id DESC';
                
                $params_coms = array(":id_post"=>$id_affichage);
                
           

          try 
           
           {

              $req_coms = $bdd->prepare($sel);
              $req_coms->execute($params_coms);
              


           } 

          catch(Exception $e) 

           {
           // en cas d'erreur
              echo "<br>ERREUR ! ".$e->getMessage()."<br>";
              echo "<br>params : <br>";
              print_r($params_coms);
              print_r($params_psd);
           }

          

           $sel_psd = 'SELECT image FROM membres WHERE pseudo = :pseudo';
           $params_psd = array(":pseudo"=>$pseudo);

           try 
           {

              $req_psd = $bdd->prepare($sel_psd);
              $req_psd->execute($params_psd);
              $donnes_psd = $req_psd->fetch();
           }
           catch(Exception $e) 

           {
           // en cas d'erreur
              echo "<br>ERREUR ! ".$e->getMessage()."<br>";
              echo "<br>params : <br>";
              print_r($params_psd);
           }

           

           $image = $donnes_psd['image'];

                  while($donnees_coms_affichage = $req_coms->fetch())
                  {

                  
                     $pseudo_com = $donnees_coms_affichage['pseudo'];
             $affichage_com = $donnees_coms_affichage['commentaires'];
             $profile_com = $donnees_coms_affichage['image'];
                      echo "
                      <img src='membres/avatar/".$profile_com."'>
                      <div class='affichage_commentaire_com'>".$affichage_com."</div>
                      <br />
                      
                     

                       ";


                  }



                  echo " </div>
                 </div>
                 </div>";
               }

     

      
        if (isset($_POST["commentaire_envoi"]))
       {

        if(!empty($_POST['commentaire_case']))
        {
         $envoi = $bdd->prepare("INSERT INTO commentaire(pseudo,commentaires,id_post,image) VALUES (?,?,?,?)");
         $envoi->execute(array($pseudo,$commentaire,$identification_post,$image));

         header("Refresh:0");
        }
       
       }
      
       

       
       
     

         
 

      

       
?>

RESOLU !! :)
1