Php 在数据库更新时通过Jquery Ajax跟踪和管理内容
我通过jQueryAjax查询数据库以检索内容,并使用SetInterval函数每隔1分钟查询数据库中的新内容。 我的问题是如何跟踪新内容?例如:若数据库有新内容,我想给它添加highlight类。如何做到这一点 用于检索内容的Jquery代码Php 在数据库更新时通过Jquery Ajax跟踪和管理内容,php,javascript,jquery,mysql,ajax,Php,Javascript,Jquery,Mysql,Ajax,我通过jQueryAjax查询数据库以检索内容,并使用SetInterval函数每隔1分钟查询数据库中的新内容。 我的问题是如何跟踪新内容?例如:若数据库有新内容,我想给它添加highlight类。如何做到这一点 用于检索内容的Jquery代码 $(document).ready(hot_listings()); setInterval( "hot_listings();", 10000 ); var ajax_load = "<img class='loadin
$(document).ready(hot_listings());
setInterval( "hot_listings();", 10000 );
var ajax_load = "<img class='loading' src='images/indicator.gif' alt='loading...' />";
function hot_listings() {
$.ajax({
url: "hot_listing.php",
cache: false,
success: function(msg) {
$("#hot_properties").html(msg);
}
});
}
$(document).ready(hot_listings());
setInterval(“hot_listings();”,10000);
var ajax_load=“”;
函数hot_listings(){
$.ajax({
url:“hot_listing.php”,
cache:false,
成功:功能(msg){
$(“#热#属性”).html(msg);
}
});
}
嗯,我也包括Php
<?php
include("includes/initialize.php");
// hot properties, featured
$per_page = 3;
global $database;
$listings = Listings::hot_listings();
//while ($listing = $database->fetch_array($listings)) {
foreach ($listings as $listing ) {
$listing_id = $listing->listing_id; //initialize listing_id to fetch datas from other table
$photo = Photos::find_by_id($listing_id); //initialize table photo
$comment = Comments::find_by_id($listing_id);
$comment_count = Comments::count_by_id($listing_id);
$photo_count = Photos::count_by_id($listing_id);
//echo $listing['listing_id'];
?>
<li><span class="imageholder">
<a href="content.php?id=<?php echo $listing->listing_id; ?>"><img class="listingimageSmall" src="<?php if (!empty($photo->name)) { echo 'uploads/thumbs/'.$photo->name; } else { echo 'images/no-thumb-100.jpg'; } ?>" width="66" height="66" ></a>
</span>
<h3><a href="content.php?id=<?php echo $listing->listing_id; ?>"><?php echo ucfirst($listing->title) . ' in ' . ucfirst($listing->city) ; ?></a></h3>
<p class="description">
<span class="price">Rs <?php echo $listing->price; ?></span>
<span class="media"> <img src="images/icon_img.jpg" alt="Images" width="13" height="12" /> <?php echo $photo_count;?> Images <img src="images/comments.png" alt="Images" width="13" height="12" /> <?php echo $comment_count; ?> comments </span>
</p>
<div class="clear"> </div>
</li>
<?php } // end of foreach
?>
Rs
图片评论
您可以将所有列表放在JS中的一个数组中,然后将其与从PHP文件中新获取的列表进行比较,或者只需检查包含添加行日期的日期列,然后通过PHP;如果行早于1分钟-继续,在HTML元素上放置一个类。您可以将所有列表放在JS中的数组中,然后将其与从PHP文件中新获取的列表进行比较,或者您可以简单地检查包含添加行的日期的日期列,然后通过PHP;如果行早于1分钟-继续并在HTML元素上放置一个类。回答
我建议您将PHP部分更改为发出关于清单的JSON数据
这可以通过使用PHP函数json\u encode()
实现。您可以在上阅读更多关于json\u encode()
的信息
然后在客户端上,您可以执行以下操作:
$.ajax({
url: "hot_listing.php",
cache: false,
success: function(data) {
last_received_listings = data;
build_html_in('#hot_properties', data);
}
});
在ajax回调中,您记住刚刚接收到的数据,然后从中构建HTML标记
因为您知道您已经看到了哪些列表,所以当您获得新列表时,您将能够识别新的列表
var new_listings = detect_new_listings(data, last_received_listings);
last_received_listings = data;
build_html_in('#hot_properties');
highlight_listings(new_listings); // set a CSS class on a div or whatever
更多细节
检测新列表的可能实现
function detect_new_listings(original, new) {
var result = [];
for(var i = 0; i < original.length; i++) {
var found = false;
// find similar listing in new
for(var j = 0; j < new.length; j++) {
if(original[i].listing_id == new[j].listing_id) {
found = true;
break;
}
}
if(!found) {
result.push(original[i]);
}
}
return result;
}
功能检测新列表(原始、新){
var结果=[];
对于(变量i=0;i
答案
我建议您将PHP部分更改为发出关于清单的JSON数据
这可以通过使用PHP函数json\u encode()
实现。您可以在上阅读更多关于json\u encode()
的信息
然后在客户端上,您可以执行以下操作:
$.ajax({
url: "hot_listing.php",
cache: false,
success: function(data) {
last_received_listings = data;
build_html_in('#hot_properties', data);
}
});
在ajax回调中,您记住刚刚接收到的数据,然后从中构建HTML标记
因为您知道您已经看到了哪些列表,所以当您获得新列表时,您将能够识别新的列表
var new_listings = detect_new_listings(data, last_received_listings);
last_received_listings = data;
build_html_in('#hot_properties');
highlight_listings(new_listings); // set a CSS class on a div or whatever
更多细节
检测新列表的可能实现
function detect_new_listings(original, new) {
var result = [];
for(var i = 0; i < original.length; i++) {
var found = false;
// find similar listing in new
for(var j = 0; j < new.length; j++) {
if(original[i].listing_id == new[j].listing_id) {
found = true;
break;
}
}
if(!found) {
result.push(original[i]);
}
}
return result;
}
功能检测新列表(原始、新){
var结果=[];
对于(变量i=0;i
!tats有很好的文档记录,非常有用。。荣誉:)!tats有很好的文档记录,非常有用。。荣誉:)