求解javascript传递给php变量的值传不能在echo中使用
$screenX="<script>document.write(screen.width);</script>";echo<<<EOF<style>.divcss5im...
$screenX =
"<script>document.write(screen.width);</script>";
echo <<<EOF
<style>
.divcss5 img{width:{$screenX}px;max-width:100%}
</style>
EOF;
为什么style中的变量会不是显示$screenX的值而是<script>document.write(screen.width)这名说话?
但是我echo $screenX的话可以显示到分辩率的值 展开
"<script>document.write(screen.width);</script>";
echo <<<EOF
<style>
.divcss5 img{width:{$screenX}px;max-width:100%}
</style>
EOF;
为什么style中的变量会不是显示$screenX的值而是<script>document.write(screen.width)这名说话?
但是我echo $screenX的话可以显示到分辩率的值 展开
1个回答
展开全部
1)首先你要明白,一个网页从运行到呈现在你眼前这个过程中程序的执行顺序。
必须是先由后端程序处理完,再交由前端去渲染体现;
2)因此,PHP不能获取JS传过来的值,即便不是这样,你赋值给$screenX的值是字符串“<script>document.write(screen.width);</script>”,而不是scrren.width,理所当然在样式中输出的不是浏览器宽度;
3)当你直接打印$screenX变量时会显示出你要的值,是因为PHP程序将“<script>document.write(screen.width);</script>”打印到了前端,接着浏览器将其解析为JS程序。因此,你看到的值实际是JS程序的输出,而不是PHP。
以上,望采纳。
必须是先由后端程序处理完,再交由前端去渲染体现;
2)因此,PHP不能获取JS传过来的值,即便不是这样,你赋值给$screenX的值是字符串“<script>document.write(screen.width);</script>”,而不是scrren.width,理所当然在样式中输出的不是浏览器宽度;
3)当你直接打印$screenX变量时会显示出你要的值,是因为PHP程序将“<script>document.write(screen.width);</script>”打印到了前端,接着浏览器将其解析为JS程序。因此,你看到的值实际是JS程序的输出,而不是PHP。
以上,望采纳。
追问
了解,如果我要echo里面
.divcss5 img{width:{$screenX}px;max-width:100%}
中的变量引用到javascript运行出来的值,要怎么写?
追答
JS也可以控制样式的。
如JQUERY:$('.divcss5 img').css('width', screen.width);
具体查查手册。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询