将JavaScript值的内容获取到PHP变量中?

3
我有一个客户需要使用特定的跟踪功能,只能通过JavaScript获得。他希望能够捕获在客户端打印出的完全相同的信息。
如何将此添加到现有的PHP脚本中以将数据添加到数据库中?我唯一的想法是直接在主脚本中回显JavaScript,但我似乎无法弄清楚如何从PHP回显中获取值。
有什么想法吗?

“being passed on through the javascript” 是什么意思?你能具体说明一下吗? - jtbandes
抱歉,术语不太准确,我会进行编辑。我的意思是所需数据是从必要的JavaScript中打印出来的。因此,我正在尝试将其打印、捕获,然后存储在变量中。 - john
“Printed”?你是什么意思? - Pointy
我能想到的唯一方法将信息发送回服务器是通过发送Ajax请求。如果可以的话,只需编写一些JavaScript来准备信息,然后将其发送到一个PHP脚本进行处理。 - jeremysawesome
3个回答

3

这并不是真正可能的,您需要进行 AJAX 调用以获得类似的内容。

我建议直接在 PHP 中实现代码,而不是依赖 JavaScript 来获取数据。


那就是问题所在。我只能从 JavaScript 生成数据。 - john
JavaScript代码在客户端浏览器上运行,距离PHP代码运行的服务器有数千英里之遥。你唯一的选择是使用ajax。 - Pointy
@john: 如果你使用像jQuery或Prototype这样的好工具包,AJAX就像提交表单一样简单。 - mu is too short
我同意。AJAX是用于在浏览器端(JavaScript)和您选择的服务器端脚本(PHP、ASP等)之间交换数据的方法。 - jeffkee
为什么只能从Javascript生成数据?在Javascript中需要什么,而PHP中没有呢?(除非你想让用户为你挖掘比特币,否则我不明白为什么) - maaudet

1

你可以使用一个虚拟图片将它发送到服务器。

document.write('<img src="file.php?foo=value1?bar=value2&...">');

file.php的内容

<?PHP 
Header("Content-type: image/png"); 

do something with $_GET['foo']

?> 

这不是最好的方法,但它很快并且能够工作。


是的,这基本上就是我想做的。我甚至考虑过屏幕抓取信息,但这样做要容易得多。这真是一个很好的技巧。我知道其他人也在寻找类似的东西,非常感谢。 - john

0

这是不可能的,因为客户端脚本不能直接与服务器端脚本交互,因此需要在两者之间使用“传输器”,即 AJAX。看一下jQuery AJAX,它很小巧、简洁而又强大。

但是如果有一小块信息,并且不是非常机密,我可以建议您使用 cookie 的方式来实现。人们通常不会利用 cookie。

<script type="text/javascript">
document.cookie = 'info='+information; expires=Mon, 19 Jul 201110:00:00 UTC; path=/';
</script>

在 PHP 文件中

<?php
if (isset($_COOKIES['info'])) {
   $information= intval($_COOKIES['info']);
}
?>

当你获取完信息后,可以删除那些cookies。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接