1

我有一页(父)通过弹出窗口(子)打开第二页

在第二页上,我有以下 PHP 代码,它从父页面获取 HTML 元素的值:

 $var=print_r("<script type='text/javascript'>var x=window.opener.document.getElementsByName('name1');document.write(x[0].value)</script>",true);   

当我回显变量时,$var我得到的正是我所期望的。因此:

echo "test=" . $test;

...在页面上打印例如“费用”。

到现在为止还挺好。

问题是当我尝试将此变量写入如下文件时:

$f=fopen("/mylog.txt","w+");
fwrite($f, $test);
fclose($f);

$test...然后,而不是(例如费用)的实际值,

我在我的日志文件中获得了整个脚本标记,因此:

<script type='text/javascript'>var x=window.opener.document.getElementsByName('name1');document.write(x[0].value)</script>

假设print_r使用 'true' 参数将值返回给我的$test变量,为什么将确切的脚本标签写入日志文件?

我该如何克服呢?

4

3 回答 3

4

当您echo将值传递给浏览器时,它将运行 JavaScript 并显示结果。

将其保存到文件时,不会执行 JavaScript。

在这两种情况下,都会输出完整的脚本,但浏览器实际上正在运行脚本,而您的文本编辑器不会。

于 2013-04-10T14:40:45.640 回答
1

将客户端上的数据发送到服务器。您可以使用 Ajax(如下所示)或表单。

$.post('myPHPfile.php',{name:window.opener.document.getElementsByName('name1')});

我的PHP文件.php

$test=$_POST['name'];
$f=fopen("/mylog.txt","w+");
fwrite($f, $test);
fclose($f);
于 2013-04-10T14:48:15.393 回答
0

好的,我通过更改使用额外变量(所需变量)调用第二页的 url-string 来实现所需的结果,然后通过 $_GET 检索该值并可以将其打印到我的日志文件中而不会出现问题。

非常感谢你们所有人的快速回复:)

于 2013-04-10T15:19:50.197 回答