如何从PHP函数进行简单的JavaScript调用?

时间:2011-04-12 19:55:30

标签: php javascript google-analytics

我有一个简单的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 ...

如何解决此问题?

6 个答案:

答案 0 :(得分:1)

当PHP在服务器上运行时,您是否知道JavaScript正在客户端的浏览器中运行?

无论如何,现在你做到了。所以这应该回答你的问题。

简单地回显<script type="text/javascript">yourJsCodeHere</script>"

答案 1 :(得分:0)

让您的函数返回输出并在GOOGLE代码<script>元素中打印输出,将使_gaq.push...关闭。

你不能只输出那个JS并期望它在某个地方自行解雇......或者让PHP打电话给谷歌。

  • PHP是SERVER SIDE
  • JS是CLIENT SIDE(来自谷歌的客户浏览器请求,而不是您的服务器)

就像我说的那样,把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> ";