js和php在同一个文件中相互获取值的问题
答案:3 悬赏:70 手机版
解决时间 2021-10-18 02:32
- 提问者网友:记得曾经
- 2021-10-17 18:32
文件名是index.php<br><script><br>var linka;<br>linka=window.location.href;<br></script><br><?php<br>$ch[0]="<script>document.write(linka);</script>";<br>echo $ch[0]."<br />";<br><script><br>到这步为止,php获得js的变量非常顺利<br>下面接着<br><script><br>var k;<br>k="<?php echo $ch[0];?>";<br>alert(k);<br></script><br>为什么输出是"alert(k);",而不是k的值?求解释
最佳答案
- 五星知识达人网友:渊鱼
- 2021-03-03 16:45
你好php是服务端脚本语言,js是浏览器端脚本语言,除非使用ajax进行数据提交否则,一但服务端生成好页面传到浏览器端后就不再参与浏览器端的“运算”,所以你想在同一个页面中不重新进行请求就js和php相互获取值是不现实的。<br>另:<br>你的代码分析如下:<br><script><br><br>var linka;<br><br>linka=window.location.href;<br><br></script><br><br><?php<br><br>$ch[0]="<script>document.write(linka);</script>";<br><br>echo $ch[0]."<br />";<br><br><script><br><br>到这步为止,php获得js的变量非常顺利<br><br>下面接着<br><br><script><br><br>var k;<br><br>k="<?php echo $ch[0];?>";<br><br>alert(k);<br><br></script>其实你的整个页面都是php的,执行<br><br>$ch[0]="<script>document.write(linka);</script>";这一句的时候,php的$ch[0]仅仅只是被赋予了"<script>document.write(linka);</script>"这个字符串,js代码并没有运行.php也并没有获得js的变量!获得的只是字符串而已.
全部回答
- 1楼网友:夜余生
- 2020-10-05 10:26
首先要明白,javascript和php是2门不同的程序语言,他们运行的环境截然不同
javascript的环境是浏览器,php的环境是服务器
二者是不能直接进行数据交换的,但是我们可以架设一个桥梁来实现,这里先给几个方法,希望能达到抛砖引玉的效果
1. 最常用的大概要属ajax了,这里js向php发送的,和php向js回应的都是字符串类型的数据,这些字符串可以根据需要被转换成不同类型(对象,数字,bool值)。
2. 把php输入到html中,js通过dom节点来访问和修改这些值,至于php如何接收这些值,不是直接丢到form里,get或post过去就结束了么?
3. 极端情况的话,也可以直接把php的值输出到js代码里。
例如 var a = '<?php echo $v;?>';
php照样通过一个表单提交来获取他们。
- 2楼网友:迷人又混蛋
- 2019-07-12 07:14
你这个浏览器中显示的值是因为<script>document.write(linka);</script>这句话显示的并不是php获取到了js变量中的值。如果你一定要用的话,就在js中写location.href="location.href?a="+linka;
在PHP中写$ch[0]
=$_GET["a"];就可以获得了
对了linka里你要用截取字符串的函数把前半部分截掉,这点你自己试试。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯