onClick php PHP函数然后重定向

时间:2011-03-14 14:45:21

标签: php javascript html

我有一个页面,其中包含转到pdf的链接,我想跟踪哪些链接被点击。我以为我可以做类似下面的事情,但我遇到了问题:

<?
    function track($link)
    {
    $sql = "UPDATE database WHERE something = 'something';
    $db = new connection();
    $result = $db->query($sql);

    if($result){                 
                  header( 'Location: http://mywebsite/docs/. $link .' ) ;
                }
    }
?>

我的HTML看起来像:

<a onClick="track(my_file_.pdf")">File Name</a>

好吧,看起来我只是想使用链接将文件名传递给php脚本,一旦完成,我会将用户重定向到pdf。

5 个答案:

答案 0 :(得分:6)

您正在将JavaScript(客户端站点)与PHP(服务器站点)混合 - 无法正常工作

看起来你想要计算pdf被点击(交付)的时间 - 考虑其他方式:

  • 检查访问日志和计数
  • 如果您的PDF是由脚本创建的 - 在创建之前进行更新
  • 执行将更新数据库的AJAX请求onclick

答案 1 :(得分:3)

正如其他人所说,您将客户端代码(浏览器代码)与服务器端代码(php)混合在一起。您需要将html更改为

<a href="redirector.php?file=my_file_.pdf">File Name</a>

然后,您需要创建一个PHP脚本来处理请求。例如,redirector.php可能如下所示:

<?php
function track($link) {
    $sql = "UPDATE database WHERE something = 'something'";
    $db = new connection();
    $result = $db->query($sql);
    if ($result) {
        header('Location: http://mywebsite/docs/' . $link);
        exit;
    }
}

if (isset($_GET['file'])) {
     track($_GET['file']);
}

答案 2 :(得分:2)

尝试使用href属性而不是onClick()用于javascript

答案 3 :(得分:1)

你在'某些'之后缺少一个双引号你在渲染页面之后就无法调用php函数。使用ajax或GET / POST到你的php脚本

答案 4 :(得分:1)

你应该试试jquery ajax

<a onClick="track('my_file_.pdf')">File Name</a>


<script>
function track(link)
{
$.ajax({
  url: "update.php?link="+link,
  success: function(data){
    if(data=="DONE")
    {
        window.location="http://mywebsite/docs/"+link;
    }

  }
});
}
</script>
在update.php中

<?php

$link=$_GET['link'];
 $sql = "UPDATE database WHERE something = 'something'";
    $db = new connection();
    $result = $db->query($sql);

    if($result){ 
        echo "DONE";
    }

?>