我有一个页面,其中包含转到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。
答案 0 :(得分:6)
您正在将JavaScript(客户端站点)与PHP(服务器站点)混合 - 无法正常工作
看起来你想要计算pdf被点击(交付)的时间 - 考虑其他方式:
答案 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";
}
?>