Ajax访问链接而没有实际访问链接

时间:2015-09-04 18:17:54

标签: php jquery mysql ajax mysqli

我的网站上有一个基本的按钮概念,访问url.tld?action = love并在链接的数据库列中添加+1。

尽管如此,这是一个麻烦的重定向到另一个页面。是否可以单击该按钮,并向URL发送请求而不实际重定向到新URL?也可以在之后刷新按钮,以便更新计数?

关于我的下载按钮的一般概念,这是在标题中:

<?php require_once('phpcount.php'); ?>
<p class="hidden"><?php
   $time = time();
   for($i = 0; $i < 1; $i++)
   {
     PHPCount::AddHit("$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]", "127.0.0.1");
   }
   echo (time() - $time);
   /*echo "PAGE1 NON: " . PHPCount::GetHits("page1") . "\nPAGE1 UNIQUE: " . PHPCount::GetHits("page1", true);
   echo "\n\n" . PHPCount::GetHits("page2");
   $ntot = PHPCount::GetTotalHits();
   $utot = PHPcount::GetTotalHits(true);
   echo "###$ntot!!!!$utot";*/?></p>

这是我爱情的一个例子。按钮。

<a href="https://alt.epicmc.us/download.php?link='.strip_tags($package_get).'?action=love" target="_blank" class="red-button">Love <span class="count">'. PHPCount::GetHits("$package_get?action=love", true).'</span></a>

我使用这种方法的原因是因为人们创建页面,我希望类似按钮能够开箱即用。首次访问他们的页面时,它会将他们的URL添加到数据库中,并开始计算唯一的匹配。

这基本上是添加了一个名为downloadlink?action = love的新链接列,并统计了唯一的点击次数。

2 个答案:

答案 0 :(得分:0)

是的,有可能。我假设你知道ajax是什么以及如何使用它,如果不是我不会给你代码,因为@ Black0ut建议的ajax上的一些简单阅读将告诉你如何。但基本步骤如下:

  1. 将ajax请求发送到将更新+1投票到数据库的PHP脚本
  2. 在PHP脚本中,向数据库添加+1并将一些数据返回给ajax,也许是新的投票数
  3. 解析JavaScript中的返回数据并相应地更新按钮

答案 1 :(得分:0)

使用以下代码。将id="btn_my_love"绑定到该按钮并将此代码添加到您的页面

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script>
      //assign url to a variable
      var my_url = <?php echo "https://alt.epicmc.us/download.php?link='.strip_tags($package_get).'?action=love"; ?>;

      $(function(){

       $("#btn_my_love").click(function(){
          $.ajax({
            url:my_url,
            type:'GET',
            success:function(data){
               //comment the following result after testing
               alert("Page visited");
            },
            error: function (request, status, error) {
               alert(request.responseText);
            }
          });
          //prevent button default action that is redirecting
          return false;
        });

      });
</script>