我有一个简单的PHP函数,在提交表单时被调用:
function uc_paypal_ec_submit_form($form, &$form_state) {
$form['actions'] = array('#type' => 'actions');
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit order'),
);
return $form;
}
我需要的是能够像这样进行简单的Google Analytics调用:
_gaq.push(['_trackPageview', 'virtual/formSubmit']);
我尝试了一些选项,但没有任何效果。我没有看到正在调用Google Analytics ...
如何解决此问题?
答案 0 :(得分:1)
当PHP在服务器上运行时,您是否知道JavaScript正在客户端的浏览器中运行?
无论如何,现在你做到了。所以这应该回答你的问题。
简单地回显<script type="text/javascript">yourJsCodeHere</script>"
。
答案 1 :(得分:0)
让您的函数返回输出并在GOOGLE代码<script>
元素中打印输出,将使_gaq.push...
关闭。
你不能只输出那个JS并期望它在某个地方自行解雇......或者让PHP打电话给谷歌。
就像我说的那样,把JS输出变成一个触发onload的函数,你就完成了。
保存输出:$output = "_gaq.push(['_trackPageview', 'virtual/formSubmit']);";
然后在某处回复它以解雇它。
答案 2 :(得分:0)
您只需要从表单的onSubmit参数调用您的javascript代码。
<form name="..." action="..." onSubmit="_gaq.push(['_trackPageview', 'virtual/formSubmit']);">
答案 3 :(得分:0)
你做不到。 JavaScript是客户端,PHP是服务器端。
您可以让浏览器调用JavaScript函数:
<?='<script type="text/javascript">jsfunc();<;/script>';?>;
答案 4 :(得分:0)
简单易行的答案是您无法在服务器端执行JavaScript代码。很长很难的答案是你可以,但它很长很难,涉及一些服务器端脚本/库,并且充其量是一种混乱。
基本上,你要做的是在用户登陆的确认/感谢页面上输出该代码(最佳),或者使用cURL进行点击(这有点棘手......基本上你必须模拟img
请求,附上相关信息,包括cookie信息......注意,这不是上面提到的“漫长而艰难”的方法。)。
答案 5 :(得分:0)
echo " <script type='text/javascript'>_gaq.push(['_trackPageview', 'virtual/formSubmit']); </script> ";