私のサイトはgapagap.comで、投稿を下にスクロールすると、より多くの投稿が読み込まれますが、「投票」機能があり、クリックすると一部の投稿で機能する場合があり、ランダムな投稿では機能しない場合があります。ここにコードスニペットがあります..
INDEX.php
<div id="entries-content" class="list">
<ul id="entries-content-ul" class="col-1">
{section name=i loop=$posts}
{include file="posts_bit.tpl"}
{/section}
{literal}
<script type="text/javascript">
$(document).ready(function(){
//calling header function to set the active tab state
headerTabChange('hot');
var tpage = 2;
function lastAddedLiveFunc()
{
$('div#lastPostsLoader').html('');
$.get("{/literal}{$baseurl}/{literal}indexmore.php?page="+tpage, function(data){
if (data != "") {
$(".col-1").append(data);
}
$('div#lastPostsLoader').empty();
});
};
$(window).scroll(function(){
var wintop = $(window).scrollTop(), docheight = $(document).height(), winheight = $(window).height();
var scrolltrigger = 0.95;
if ((wintop/(docheight-winheight)) > scrolltrigger) {
lastAddedLiveFunc();
tpage = tpage+1;
$('#backtotop').show();
}
});
});
</script>
{/literal}
</ul>
<div id="lastPostsLoader"></div>
</div>
</div>
{include file='right.tpl'}
{include file='vote_js.tpl'}
これがvote_js.tplのコードです:
{literal}
<script type="text/javascript">
$('.vote').click(function(){
if( $(this).hasClass('loved')){
$(this).removeClass('loved');
likedeg(-1,$(this).attr('rel'));
}else{
likedeg(1,$(this).attr('rel'));
$(this).addClass('loved');
}
});
function likedeg(x,p){
jQuery.ajax({
type:'POST',
url:'{/literal}{$baseurl}{literal}'+ '/likedeg.php',
data:'art='+x+'&pid=' + p,
success:function(e){
$('#love_count_'+p).html(e);
}
});
}
</script>
{/literal}
post.tplで投票機能を持つ別のコードを次に示します。
<li>
{if $smarty.session.USERID ne ""}
<a class="vote love {insert name=get_fav_class value=var PID=$posts[i].PID}" id="post_love_{$posts[i].PID}" rel="{$posts[i].PID}" href="javascript:void(0);"><span>{$lang144}</span></a>
{else}
<a class="vote love " id="post_love_{$posts[i].PID}" rel="{$posts[i].PID}" href="{$baseurl}/login"><span>{$lang144}</span></a>
{/if}
</li>
投票機能はfunction.php内にあります
function insert_get_fav_status($var)
{
global $conn;
$query="SELECT count(*) as total FROM posts_favorited WHERE USERID='".mysql_real_escape_string($_SESSION[USERID])."' AND PID='".intval($var[PID])."'";
$executequery=$conn->execute($query);
$total = $executequery->fields[total];
//echo $total.'<br />';
//var_dump($var);
return intval($total);
}
function insert_get_fav_class($var)
{
global $conn;
$query="SELECT count(*) as total FROM posts_favorited WHERE USERID='".mysql_real_escape_string($_SESSION[USERID])."' AND PID='".intval($var[PID])."'";
$executequery=$conn->execute($query);
$total = $executequery->fields[total];
//echo $total.'<br />';
//var_dump($var);
if (intval($total) == 1) return("loved");
else return ("");
}
function insert_get_unfav_status($var)
{
global $conn;
$query="SELECT count(*) as total FROM posts_unfavorited WHERE USERID='".mysql_real_escape_string($_SESSION[USERID])."' AND PID='".intval($var[PID])."'";
$executequery=$conn->execute($query);
$total = $executequery->fields[total];
return intval($total);
}
function insert_get_fav_count($var)
{
global $conn;
$query="SELECT count(*) as total FROM posts_favorited WHERE PID='".intval($var[PID])."'";
$executequery=$conn->execute($query);
$total = $executequery->fields[total];
return intval($total);
}
私は PHP 開発者であることを理解してください。JAVASCRIPT と JQUERY の知識はゼロです。