我一直试图找出这个问题几天,几乎没有进展,我有一种感觉问题在于尝试从php调用javascript函数。我需要在我们公司的网站上开始跟踪文件下载,并且我已经在常规HTML中使用GA,但我们的很多文件都是通过php从数据库中提取的,我希望这个标签能够处理这些文件。没有什么东西可以传递到GA,我可以看到当我在FireFox中查看源代码时出现错误。感谢您的任何见解。
这是令我头疼的代码行。
<a target='_blank' href='/$file' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'><img alt='$filetext' src='/$image' border='0'/></a>
FireFox将这部分代码显示为红色错误,如果我取出onclick部分错误消失,页面显示正常,但没有像我之前提到的那样发送给GA:
<a target='_blank' href='/images/datasheets/IDS-66 Amphe-10G.pdf' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', 'Amphe-10G']);'>
以下是完整的PHP代码:
<div class="download01">
<div class="download02"></div>
<table style="width: 100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<?
// Make a MySQL Connection
mysql_connect("localhost", "amphenol_web", "ampheweb") or die(mysql_error());
mysql_select_db("amphenol_sheets") or die(mysql_error());
// Retrieve all the data from the "distributors" table
$query = "SELECT * FROM datasheets ORDER BY filetext";
$result = mysql_query($query) or die(mysql_error());
$cols = 6; // Here we define the number of columns
echo "<table>"; // The container table with $cols columns
do{
echo "<tr>";
for($i=1;$i<=$cols;$i++){ // All the rows will have $cols columns even if
// the records are less than $cols
$row=mysql_fetch_array($result);
?>
<?
$file = $row['file'];
$image = $row['image'];
$filetext = $row['filetext'];
if ($file == ""){echo "<td> </td>";}
else {echo
"<td valign='top'>
<table>
<tr valign='top'>
<td width='120'>
<div align='center'><a target='_blank' href='/$file' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'><img alt='$filetext' src='/$image' border='0'/></a><br /><a target='_blank' href='/$file' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'>$filetext</a></div>
</td>
<tr>
<td height='25'> </td>
</tr>
</table>
</td>";
}
}
// else{
// echo "<td> </td>"; //If there are no more records at the end, add a blank column
}
// }
// }
while($row);
echo "</table>";
?>
</tr>
</tbody>
</table>
</div>
答案 0 :(得分:0)
您的代码中似乎存在问题,您可以在其中定义分析跟踪:
onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'>
您使用单引号,可能是因为您对回声使用双引号,您应该将其替换为:
onclick=\"_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);\">
仍然可以在echo上使用相同的双引号。
答案 1 :(得分:0)
<div align='center'><a target='_blank' href='/$file'"?> onclick="_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '<?php=$filetext ?>']);"><? echo "<img alt='$filetext' src='/$image' border='0'/></a><br /><a target='_blank' href='/$file' onclick='_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '$filetext']);'>$filetext</a></div>
然后使用此代码:)
只需将上面提供的代码替换为整行代码,以“div align ='center'&gt;”开头。
答案 2 :(得分:0)
这是最终的代码!
<div align='center'><a target='_blank' href='/$file'"?> onclick="_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '<?php echo "$filetext"?>']);"><? echo "<img alt='$filetext' src='/$image' border='0'/></a><br /><a target='_blank' href='/$file'"?> onclick="_gaq.push(['_trackEvent', 'Downloads', 'Datasheet', '<?php echo "$filetext" ?>']);"><? echo "$filetext</a></div>