如何使用PHP函数进行简单的JavaScript调用?
我有当表单提交正在被称为一个简单的PHP函数:如何使用PHP函数进行简单的JavaScript调用?
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;
}
我需要的是能够做一个简单的谷歌Analytics(分析)这样调用:
_gaq.push(['_trackPageview', 'virtual/formSubmit']);
我已经尝试了几个选项,但没有任何作用。我没有看到Google Analytics(分析)的呼叫...
我该如何解决这个问题?
您是否知道在服务器上运行PHP时,JavaScript在客户端浏览器中运行?
无论如何,现在你做。所以这应该回答你的问题。
只需回显<script type="text/javascript">yourJsCodeHere</script>"
。
是的,谢谢,我知道... – Julien 2011-04-12 20:11:28
使你的函数返回输出并让输出结果在GOOGLE代码<script>
中打印,将使_gaq.push...
开火。
你不能只输出那个JS,并期望它自己在某个地方......或者让PHP打电话给Google。
- PHP是服务器端
- JS是
所以就像我说的,让JS输出到火灾的onload功能的客户端(从谷歌,不是你的服务器的客户端浏览器的请求)和你全都定了。 保存输出:$output = "_gaq.push(['_trackPageview', 'virtual/formSubmit']);";
然后在某处回显它以激发它。
你只需要从窗体的onSubmit参数中调用你的javascript代码。
<form name="..." action="..." onSubmit="_gaq.push(['_trackPageview', 'virtual/formSubmit']);">
这不是一个好主意。首先,至少你会希望至少超时提交给GA一个执行它的机会。但更重要的是,这会带来误报。例如,用户提交和服务器端表单验证失败,并且用户被踢回。这样做会给用户一个错误的肯定(即使他们没有验证客户端)。 IOW它需要被触发*验证成功后才能准确 – 2011-04-12 20:07:53
你不行。 JavaScript是客户端,PHP是服务器端。
可以使浏览器调用JavaScript函数:
<?='<script type="text/javascript">jsfunc();<;/script>';?>;
小心使用短标签,我实际上会提醒他们,容易犯错误,并且默认情况下不支持。 – Jakub 2011-04-12 20:23:45
短期和简单的答案是,你不能执行JavaScript代码的服务器端。长期和艰难的答案是你可以,但它是漫长而艰难的,并涉及一些服务器端脚本/库,最好是有点混乱。
基本上,你想要做的是要么输出代码确认/谢谢你的网页用户登陆后(最佳),否则使用cURL来打一个(这是一个小技巧...基本上你必须模拟img
请求,附加相关信息,包括cookie信息......注意,这不是上面提到的“长而坚硬”的方法)。
echo " <script type='text/javascript'>_gaq.push(['_trackPageview', 'virtual/formSubmit']); </script> ";
那些其他SO Q&A可能会帮助你:http://stackoverflow.com/questions/391306/javascript-function-from-php http://stackoverflow.com/questions/1045845/how-to-call -a-javascript-function-from-php – 2011-04-12 20:01:16
Javascript在客户端执行,PHP在服务器上执行。Javascript不能直接调用PHP代码,而PHP只能生成Javascript代码,而不能执行它。 – 2011-04-12 20:02:04