求解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的话可以显示到分辩率的值
展开
 我来答
xManiac
2015-03-26
知道答主
回答量:23
采纳率:100%
帮助的人:4.6万
展开全部
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。

以上,望采纳。
追问
了解,如果我要echo里面
.divcss5 img{width:{$screenX}px;max-width:100%}
中的变量引用到javascript运行出来的值,要怎么写?
追答
JS也可以控制样式的。
如JQUERY:$('.divcss5 img').css('width', screen.width);
具体查查手册。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式