2012-10-11 42 views
0

o我有问题,使用jQuery从MySQL数据库中获取评论。jquery - 从数据库中获取评论

我想这样,但它不工作。

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(在评论格到上comments.html加载)

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

请参阅并提出任何可行的方法。

感谢

+0

哪一部分无法正常工作?顺便说一句:你正在暴露你的数据库名称和表名不安全的JavaScript。 – janenz00

+0

php正在工作,但当jQuery提取结果不起作用时,它也只是一个测试页,我将删除数据库名称,一旦它工作。 –

回答

1

你有$.load()$.post()成功函数内,试试这个..

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

我必须从'.comment-container'上加载comments.php到'#comments'上的评论.html –

+0

明白了,谢谢。 –

1

在JavaScript,你要发送数据到一个URL,接受响应和响应是否成功,您正在向PHP脚本发送另一个请求,这次没有参数。您的评论框显示第二个请求的结果。

你并不需要:

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

,因为你已经收到的响应。相反,使用:

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

它将在评论div中显示响应数据。

+0

您在div中收到的数据是什么? – janenz00

+0

得到它的工作方式,谢谢,我感谢你的时间和投入,因为Rajat Singhal先回答了,所以我接受了他的答案。太糟糕了,只能接受一个答案。 –

2

尝试这一个它会帮助你。 这是jquery Ajax post方法requesst如果你想显示你的数据加载或不只是删除commet。

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

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

得到它的工作方式也谢谢,我感谢你的时间和投入,因为Rajat Singhal先回答了,所以我接受了他的答案。太糟糕了,只能接受一个答案。 –

1

你可以试试这一个,

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); 
    } 
}); 
+0

请不要使用串联构造查询字符串,请使用对象并让'$ .ajax'将其转换为表单数据。 – Barmar

+0

@Barmar - 哦,我明白了,我会尽力避免,谢谢你指出这一点。 –

+0

得到它的工作方式也谢谢,我感谢您的时间和投入,因为Rajat Singhal先回答了,所以我接受了他的答案。太糟糕了,只能接受一个答案。 –