2011-03-14 82 views
0

我有一個頁面鏈接到pdf的我想跟蹤哪些鏈接被點擊。我想我可以做類似如下但我有問題:onClick 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 .') ; 
       } 
    } 
?> 

和我的HTML看起來像:

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

好了,它看起來像我只想使用鏈接傳遞文件名稱到一個PHP腳本,一旦完成,我將把用戶重定向到pdf。

回答

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

嘗試使用href屬性,而不是的onClick(),這是Javascript

6

您正在使用PHP(服務器站點)混合的JavaScript(客戶網站) - 將無法正常工作

它看起來像你想看看有多少時間的概率密度點擊(交付) - 考慮使用其他方法:

  • 檢查訪問日誌和統計
  • 如果您的PDF是由腳本創建 - 使更新之前創建
  • 執行AJAX請求的onclick這將更新數據庫
1

你缺少「東西」呈現頁面後,您不能調用PHP函數一樣,後一個雙引號。用ajax或GET/POST到你的php腳本

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"; 
    } 

?>