php代码中的JavaScript脚本标签


JavaScript script tag inside php code

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

在第二页上,我有以下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>

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

我怎样才能克服这个?

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

当你把它保存到一个文件时,JavaScript不会被执行。

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

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

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

myPHPfile.php

$test=$_POST['name'];
$f=fopen("/mylog.txt","w+");
fwrite($f, $test);
fclose($f);

好的,我通过修改url字符串完成了期望的结果,该字符串使用一个额外的变量(期望的变量)调用第二页,然后,通过$_GET,我检索了这个值,并可以将它毫无问题地打印到我的日志文件中。

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