以下は私のPHPコードです:
<tr <?php echo $backclr; ?>>
<td class="hashtd"><a href="#"><?php echo "#" . $row['hashtag']; ?></a></td>
<td class="hashtd">
<script type = "text/javascript">
submitTerms("<?php echo $row['hashtag']; ?>", "1", "2");
</script>
<div id="totalTweets<?php echo $row['hashtag']; ?>"><span></span></div>
<div class="loading"><img src="img/preloader.gif"/></div>
</td>
</tr>
<?php
endwhile; ?>
ここでは、javascript 関数を呼び出しsubmitTerms();
、その関数で php 引数を渡しています。
以下はJavaScriptコードです:
<script type="text/javascript">
var getPage = new RegExp( /page=([^&]+)/ );
var url = "http://search.twitter.com/search.json?q=";
var search, page, pageTotal, tweets, loading;
var beforeCounter = "<b>";
var afterCounter = "</b>";
var totalTweets = 0;
function getTweets(search, page, pageTotal) {
$.getJSON( url + search + '&page=' + page + '&callback=?',
function(data) {
if( data.results.length != 0 && page != pageTotal ) {
//$('#pagesDone span').html(page);
getData(data);
}
else {
showTotal(search);
}
}
);
}
function showTotal(search) {
$('#totalTweets'+search+' span').html(beforeCounter + totalTweets + afterCounter);
totalTweets = 0;
loading = false;
}
function getData(data) {
tweets = data.results;
totalTweets += tweets.length;
nextPage = getPage.exec(data.next_page);
if( nextPage == null ) {
showTotal();
return;
}
nextPage = nextPage[1];
getTweets(search, nextPage, pageTotal);
}
function submitTerms(query, pg, pgtot) {
$('#totalTweets'+query+' span').html('');
search = query;
page = pg;
pageTotal = pgtot;
if( search == '' ) {
alert('No search query found');
return;
}
loading = true;
getTweets(search, page, pageTotal);
}
function status() {
if( loading ) $('.loading').show();
else $('.loading').hide();
}
$(function() {
loading = false;
setInterval(status, 10);
});
</script>
上記の JavaScript は、Twitter のハッシュタグ数を返しています。ただし、各行のハッシュカウントが必要です<td><div id="totalTweets<?php echo $row['hashtag']; ?>"></td>
。また、それを取得するために div タグで別の ID を使用しています。
問題は、すべての行ではなく、最後の行のみのカウントを表示することです。例 : データベースに 5 つのレコードがある場合、最後の行のハッシュタグ カウントのみが表示されます。コードをデバッグすると、すべてのハッシュタグのカウントが表示されますが、最終的なレンダリングはすべての行ではなく最後の行のみです。
問題はどこにありますか? 助けが必要。