Php 如何用灯箱实现点击计数器

Php 如何用灯箱实现点击计数器,php,lightbox,hitcounter,Php,Lightbox,Hitcounter,我想计算一张图片的点击次数,并且图片会显示在一个灯箱中。 这是我的密码: //image-show-content.php <script> function hitcounter(imgid) { //alert(imgid); var imgid = imgid; window.location.href ="image-show-content.php?img_id="+imgid; } </script> <?php if(!empty($_REQUES

我想计算一张图片的点击次数,并且图片会显示在一个灯箱中。 这是我的密码:

//image-show-content.php

<script>
function hitcounter(imgid)
{
//alert(imgid);
var imgid = imgid;
window.location.href ="image-show-content.php?img_id="+imgid;

}
</script>
<?php
if(!empty($_REQUEST['img_id']))
{
$show = "SELECT * FROM `tbl_image_gallery` WHERE image_id =".$_REQUEST['img_id']." ";
$result_show = mysql_query($show);
$row = mysql_fetch_array($result_show);

$new_click_count = $row['click_on_image'] +1;
$update_sql = "UPDATE `tbl_image_gallery` SET click_on_image =".$new_click_count." WHERE image_id=".$_REQUEST['img_id']."";
$result_sql= mysql_query($update_sql);

}
//image-show-content.php
函数命中计数器(imgid)
{
//警报(imgid);
var imgid=imgid;
window.location.href=“image show content.php?img_id=“+imgid;
}
我的问题是,当我点击一个图像时,它会返回一个错误。
请帮助解决此问题。提前谢谢。您是否可以参考其他选项来同时显示灯箱和计数器。

问题是,当您的页面加载时。Lightbox javascript已经在为您的标记生成动态节点

要实现这一点,您可以尝试使用onclick函数。在该函数中,您应该使用图像id调用AJAX调用。onclick函数可能在lightbox调用之后或lightbox调用之前调用。所以也请调试一下


根据我的观点,这只是实现这一点的唯一方法。

将php代码放在另一个名为_image.php的文件中,然后将代码放在那里

<?php
if(!empty($_REQUEST['image_id']))
{
$show = "SELECT * FROM `tbl_image_gallery` WHERE image_id =".$_REQUEST['image_id']." ";
$result_show = mysql_query($show);
$row = mysql_fetch_array($result_show);

$new_click_count = $row['click_on_image'] +1;
$update_sql = "UPDATE `tbl_image_gallery` SET click_on_image =".$new_click_count." WHERE image_id=".$_REQUEST['image_id']."";
$result_sql= mysql_query($update_sql);

}

您需要整理代码格式。另外,您得到的错误是什么?请始终准确说明您得到的错误。在这一行“window.location.href=”image show content.php?img_id=“+imgid;”中,它将在同一页面中返回值。这就是为什么灯箱不会显示。我的灯箱图像将打开一个大图像……这里单击功能不起作用它第一次起作用,但如果再次单击图像,灯箱将显示,但单击计数器不起作用,所以唯一的选项是在灯箱库中进行黑客攻击。您应该在中添加其他参数。例如现在需要做的是,当lightbox调用popup时,检查对象类是否等于“hitcounter”。如果是,那么调用我前面提到的ajax脚本。
<?php
if(!empty($_REQUEST['image_id']))
{
$show = "SELECT * FROM `tbl_image_gallery` WHERE image_id =".$_REQUEST['image_id']." ";
$result_show = mysql_query($show);
$row = mysql_fetch_array($result_show);

$new_click_count = $row['click_on_image'] +1;
$update_sql = "UPDATE `tbl_image_gallery` SET click_on_image =".$new_click_count." WHERE image_id=".$_REQUEST['image_id']."";
$result_sql= mysql_query($update_sql);

}
<script type="text/javascript">
    function counter(imageId)
    {   
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            //document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","hit_image.php?image_id="+imageId,true);
    xmlhttp.send();
    }
</script>

<a onclick="counter(<?=$val[image_id]?>)" rel="lightbox[100,200]" title="<?=ucfirst($val['category_name'])?>"><img src="uploadedimage/gallery/thumble/<?=$val['gallery_image']?>" onclick="hitcounter('<?=$val[image_id]?>')"/></a>