【问题标题】:How to implement hit counter with light box如何用灯箱实现命中计数器
【发布时间】:2023-03-21 22:07:01
【问题描述】:

我想计算图像上的点击次数,并且图像将显示在灯箱中。 这是我的代码:

//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);

}

//图像...

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

我的问题是当我单击图像时它返回错误。 请帮忙解决。在此先感谢。您能否参考其他一些选项来同时显示灯箱和计数器。

【问题讨论】:

  • 你需要整理一下你的代码格式。另外,您遇到的错误是什么?
  • 始终说明您遇到的确切错误。
  • 在这一行 "window.location.href ="image-show-content.php?img_id="+imgid; " 它返回同一页面中的值。这就是为什么灯箱不会显示。

标签: php lightbox hitcounter


【解决方案1】:

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

要实现这一点,您可以尝试将 onclick 功能放入 .在该函数中,您应该使用您的图像 ID 调用 AJAX 调用。您的 onclick 函数可能会在灯箱调用之后或在灯箱调用之前调用。所以也请调试一下。

根据我的意见,这只是实现这一目标的一种方法。

【讨论】:

    【解决方案2】:

    将您的 php 代码放在另一个名为 hit_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);
    
    }
    

    现在你的 HTML 文件应该如下所示,

    <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>
    

    这只是提示的概述代码。

    【讨论】:

    猜你喜欢
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 2020-11-12
    • 2012-12-12
    相关资源
    最近更新 更多