2012-10-11 53 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先回答了,所以我接受了他的答案。太糟糕了,只能接受一個答案。 –