user1411607
user1411607

Reputation:

Jquery - Fetching Comments From Database

oI am having problem fetching comments from MySQL database using jQuery.

I am trying this way, but its not working.

PHP (comments.php)

<?php 

    if (isset($_POST['value1'])) {
        $id = ($_POST['value1']);
    }else{
        $id = '';
    } 
    if (isset($_POST['value2'])) {
        $database = ($_POST['value2']);
    }else{
        $database = '';
    } 
    if (isset($_POST['value3'])) {
        $tablename = ($_POST['value3']);
    }else{
        $tablename='';
    } 

    require_once('rt-connect.php');

    $find_data = "SELECT * FROM $tablename";
    $query = mysqli_query($connection, $find_data);
?> 



  <?php while($row = mysqli_fetch_assoc($query)):?>
  <div class="comment-container">
    <div class="user-info"><?php echo $row['user_name']; ?></div>
    <div class="comment"><p><?php echo $row['comment']; ?></p></div>
  </div>
  <?php endwhile;?>

Jquery(comments.html)

     var id=2;
 var database='comments_db';
 var tablename='comments';

 $.post('comments.php', {value1:id, value2:database, value3:tablename}, function(data)
    {
    $('#comments').load('comments.php .comment-container');
 });

Html(div on comments to load on comments.html)

      <div id="comments"></div><!--end of comments-->

Please see and suggest any possible way to do it.

Thanks

Upvotes: 0

Views: 240

Answers (4)

iLaYa  ツ
iLaYa ツ

Reputation: 3997

You could try this one,

 var id = 2;
 var database  = 'comments_db';
 var tablename = 'comments';

$.ajax({
    type   :"POST",
    data   :"id="+id+"&database="+database+"&tablename="+tablename,
    url    : comments.php, 
    success: function(msg){
        $("#comments").html(msg);
     }
});

Upvotes: 0

Rahul Dhamecha
Rahul Dhamecha

Reputation: 131

Try This one it will help you. This is jquery Ajax post method requesst if you want to show your data is loaded or not just remove the commet.

$.ajax({
type: "POST",
url: url,
data: { value1:id, value2:database, value3:tablename}
}).done(function( data ) {
//alert(data); return false;

$("#comments").html(html);
});

Upvotes: 1

janenz00
janenz00

Reputation: 3310

In your javascript, you are posting data to a url, accepting response and if the response is successful, you are sending another request to the PHP script, this time without parameters. Your comments box is displaying the result of your second request.

You do not require :

 $('#comments').load('comments.php .comment-container');

in your javascript, since you have already received a response. Instead, use :

  $('#comments').html(data);

which will display the response data in the comments div.

Upvotes: 0

Rajat Singhal
Rajat Singhal

Reputation: 11264

You have $.load() inside success function of $.post(), try this..

$.post('comments.php', {value1:id, value2:database, value3:tablename}, function(data)
   {
   $('#comments').html(data);
});

Upvotes: 0

Related Questions