![](/img/trans.png)
[英]PHP with Javascript - What is the scope of PHP variables inside a <script></script> tag?
[英]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
的实际值(例如Expenses),
我在日志文件中得到了整个脚本标签,因此:
<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字符串来实现期望的结果,该URL字符串使用一个额外的变量(期望的变量)来调用第二页,然后通过$ _GET检索此值并将其打印到我的日志文件中而不会出现问题。
非常感谢你们大家的快速回复:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.