单击php函数,然后重定向
我有一个网页的链接,去pdf的我想跟踪哪些链接正在被点击。我想我可以做如下的事情,但我有问题:单击php函数,然后重定向,php,javascript,html,Php,Javascript,Html,我有一个网页的链接,去pdf的我想跟踪哪些链接正在被点击。我想我可以做如下的事情,但我有问题: <? function track($link) { $sql = "UPDATE database WHERE something = 'something'; $db = new connection(); $result = $db->query($sql); if($result){
<?
function track($link)
{
$sql = "UPDATE database WHERE something = 'something';
$db = new connection();
$result = $db->query($sql);
if($result){
header( 'Location: http://mywebsite/docs/. $link .' ) ;
}
}
?>
尝试使用href属性,而不是用于javascript的onClick()如果您将javascript(客户端站点)与PHP(服务器站点)混合使用,将无法工作
看起来像要计算PDF点击次数(递送)——考虑其他方式:
- 检查访问日志并计数
- 如果您的PDF是通过脚本创建的,请在创建之前进行更新
- 执行AJAX请求onclick,它将更新您的数据库
在“something”之后缺少双引号。在呈现页面后,您无法调用类似的php函数。使用ajax或GET/POST到您的php脚本正如其他人所提到的,您正在混合客户端代码(浏览器代码)和服务器端代码(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']);
}
您应该尝试使用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>
文件名
功能跟踪(链接)
{
$.ajax({
url:“update.php?link=“+link,
成功:功能(数据){
如果(数据==“完成”)
{
window.location=”http://mywebsite/docs/“+链接;
}
}
});
}
在update.php中
<?php
$link=$_GET['link'];
$sql = "UPDATE database WHERE something = 'something'";
$db = new connection();
$result = $db->query($sql);
if($result){
echo "DONE";
}
?>
<?php
$link=$_GET['link'];
$sql = "UPDATE database WHERE something = 'something'";
$db = new connection();
$result = $db->query($sql);
if($result){
echo "DONE";
}
?>