0

我想要一些关于使用 PHP 和 JS 跟踪横幅视图的方法的帮助。我知道如何跟踪横幅点击,但我看不到跟踪视图的方法。

4

2 回答 2

3

如果您的横幅是图像,您可以将其 URL 替换为记录视图并返回图像的 PHP 脚本。

例如:<img src="http://img.com/img.png">--> 在 PHP 脚本上重写 --> 日志 --> 返回图像

于 2013-02-02T18:13:18.717 回答
1

如果您想永久存储已查看横幅/图像的次数,请修改数据库中包含图像 ID 的表。

表横幅

id| path| clicks|views

www.example.org/products.php?products=type_a

<?php
// other code
$type = $_GET["products"];
// sanitize $type
$views;
$products_selected = get_product_ids_from_type($type);
$query = "..."; // use $products_selected to create a query that will help to get image records from table
while($row = mysql_fetch_row(...)) { 
  echo "<img src='".$row[1]."' />";
  $views[$row[0]] = $row[3]; // get the old number of views
}
foreach($products_selected as $id) {
$query = "insert into `table-banner` (`views`) values ('".($views[$id] + 1)."') where id=`".$id."`;";
// perform the query
}

这意味着当有人点击链接www.example.org/products.php?products=type_a时,请求会转到服务器,因为type_a选择了产品,您的 .php 文件将使用该类型来获取 id 和显示相应的图像,并在获取这些图像进行显示时,同时更新每个图像记录的视图列

如果您还想使用 JavaScript(这不是必需的),您可以

<script>
var selected_ids = [
<?php
  foreach($products_selected as $v) {
    echo $v.",";
  }
?>
];</script>
<script>
  $(function() {
   for(x in selected_ids) {
    $.ajax({
      type: "POST",
      url: "ajax.php",
      data: { id: selected_ids[x] }
    }).done(function( msg ) {
      alert( selected_ids[x] + " now has views : " + msg );
    });
   }
  });
</script>

www.example.org/ajax.php

$id = $_POST["id"];
// create connection
$view = 0;
$query = ...; // get old views from id and store in $view
// perform the query to insert new view
$query = "insert into `table-banner` (`views`) values ('".($view + 1)."') where id = `".$id."`;";
echo $view;
于 2013-02-02T18:30:25.297 回答