2012-07-14 3 views
0

Je voudrais savoir comment je peux améliorer ce code pour ne pas actualiser la page lorsque je supprime un commentaire. Comme c'est plutôt ennuyeux si vous supprimez un commentaire à mi-chemin de la page et il revient en haut.Supprimer le commentaire sans rafraîchir la page

AJAX

function delete_(pid){ 
    $.ajax({ 
     type: "POST", 
     url: "../include/post.delete.php", 
     data: "pid="+pid, 
     success: function(){ 
     } 
    }); 
    } 

DELETEPOST 
    echo'<div class="userinfo"><div id="divider">'; 

      if($streamitem_data['streamitem_type_id'] == 1||$streamitem_data['streamitem_type_id'] == 3){ 
       echo ""; 
       }else{ 
       echo ""; 
       } 

       $poster_name = _user_core::getuser($streamitem_data['streamitem_creator']); 
       $target_name = _user_core::getuser($streamitem_data['streamitem_target']); 


      if($streamitem_data['streamitem_type_id'] == 1||$streamitem_data['streamitem_type_id'] == 3){ 
      if(!($streamitem_data['streamitem_type_id']==1)) { 

       echo "<a href='/profile.php?username=".$poster_name['username']."'><img class='stream_profileimage' style='border:none;padding:0px;display:inline;' border=\"0\" src=\"imgs/cropped".$streamitem_data['streamitem_creator'].".jpg\" onerror='this.src=\"img/no_profile_img.jpeg\"' width=\"40\" height=\"40\" ></a>"; 

echo "<a href='/profile.php?username=".$target_name['username']."'><img class='stream_profileimage' style='border:none;padding:0px;display:inline;' border=\"0\" src=\"imgs/cropped".$streamitem_data['streamitem_target'].".jpg\" onerror='this.src=\"img/no_profile_img.jpeg\"' width=\"40\" height=\"40\" ></a>"; 
      } 
       if(!($streamitem_data['streamitem_type_id']==3)) { 
       echo "<a href='/profile.php?username=".$poster_name['username']."'><img class='stream_profileimage' style='border:none;padding:0px;display:inline;' border=\"0\" src=\"imgs/cropped".$streamitem_data['streamitem_target'].".jpg\" onerror='this.src=\"img/no_profile_img.jpeg\"' width=\"40\" height=\"40\" ></a>"; 

       } 
        $cont = stripslashes($streamitem_data['streamitem_content']); 

        if(!($streamitem_data['streamitem_type_id']==1)){ 
        //$cont = htmlentities($cont); 
        $cont = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a class='user_link' href=\"\\0\">\\0</a>", $cont); 

        } 


        if($streamitem_data['streamitem_creator']==$streamitem_data['streamitem_target']){ 
         echo "<a href='/profile.php?username=".$poster_name['id']."'>" . $poster_name['fullusersname']."</a><span class='subtleLink'> said </span>"; 
        }else{ 
         echo "<a href='profile.php?username=".$poster_name['username']."'>" .$poster_name['fullusersname']."</a> 
         <span class='subtleLink'>wrote on </span> 
           <a href='profile.php?username=".$poster_name['username']."'>" .$target_name['fullusersname']." 's</a> stream"; 
        } 
        echo "<br/><a href='#' class='subtleLink' style='font-weight:normal;'>".Agotime($streamitem_data['streamitem_timestamp'])."</a></div><hr><div style='padding-left:10px;padding-right:10px;'>"; 

        if($streamitem_data['streamitem_type_id']==1){ 
        $cont = nl2br($cont); 
        echo "<span class='subtleLink'>".$cont."</span>"; 
        }else{ 

         if($streamitem_data['streamitem_creator']==$streamitem_data['streamitem_target']){ 
         $cont = nl2br($cont); 
          echo "<div>".$cont."</div>"; 
         }else{ 
         $cont = nl2br($cont); 
         echo "<div>'".$cont."</div>"; 

         } 

        } 


     echo "</div><div class='post_contextoptions'>"; 
    if($streamitem_data['streamitem_creator']==$_SESSION['id']){ 
     echo "<div class='stream_option' id='delete_option'><form style='display:inline;' id='delete_".$streamitem_data['streamitem_id']."' action='include/post.delete.php' method='POST' target='ifr2'><input type='hidden' name='pid' value='".$streamitem_data['streamitem_id']."'><a style='cursor:pointer;position:relative;top:-70px;float:right;padding-right:5px;' onClick='document.forms[\"delete_".$streamitem_data['streamitem_id']."\"].submit();refreshstream();'>X</a></div>"; 

}

+1

le gestionnaire de succès supprime-t-il le noeud dom du commentaire? –

+0

Comment pourrais-je faire cela s'il vous plaît Marc? – dave

Répondre

2

Vous devez appeler .remove() sur l'élément de commentaire que vous venez de supprimer. Vous aurez besoin de comprendre comment l'identifier. Il y a une façon:

function delete_(pid){ 
    $.ajax({ 
     type: "POST", 
     url: "../include/post.delete.php", 
     data: "pid="+pid, 
     success: function(){ 
      // However you can identify the comment's div, and delete it by calling .remove() 
      // This is if it has a unique id 
      $("#comment-"+pid).remove(); 
     } 
    }); 
} 

Sinon, si vous avez utilisé <a href="javascript:delete_(pid);"> vous pouvez ajouter un Parmeter comme <a href="javascript:delete_(pid, this);">. De cette façon, vous obtiendrez à l'élément via $(the_element_you_passed_to_the_function).parents("div.the-comment-div-parent").remove() par exemple.

Sinon, vous pouvez implémenter cette fonction directement dans $("a").click(function {}); si vous utilisez cette méthode. C'est à vous.

+0

L'élément de commentaire est-il la div dans laquelle le commentaire est contenu? – dave

+0

J'ai mis à jour mon code où se trouve mon flux, car je ne suis pas sûr de ce que je dois appeler. Si quelqu'un peut aider s'il vous plaît/ – dave

+0

Oui, le div qui contient tout ce que vous souhaitez cacher doit être supprimé. Si vous pouvez publier un exemple de sortie HTML, votre page produit ce serait bien, afin que nous puissions savoir quelle est votre structure HTML. On ne sait vraiment pas ce que le morceau de code que vous avez publié produit. Je * crois * que vous devriez supprimer les divs avec la classe 'userinfo' (associée à' div.userinfo'), mais le nom ne semble pas être pertinent, donc je ne suis pas sûr. – jadkik94

Questions connexes