我想根据window.innerWidth
设置PHP变量。
出于测试目的,我将浏览器设置为全尺寸,document.write(window.innerWidth);
返回1920,这似乎是正确的。
但是,下面的代码总是返回"小"对于PHP变量$window_size
。
<script>
if(window.innerWidth > 1000){
<?php $window_size = 'big'; ?>
} else {
<?php $window_size = 'small'; ?>
}
</script>
有什么想法吗?
答案 0 :(得分:-1)
你不能在后端以这种方式确定窗口大小,JS需要在某个时刻将这些数据发送到后端,以便知道窗口大小。
<script>
var windowSize;
if(window.innerWidth > 1000){
windowSize = 'big';
} else {
windowSize = 'small';
}
$.ajax({ url: 'some/back/end', data: windowSize }); // send to server.
</script>
这是因为您的后端PHP生成HTML。因此,您的浏览器然后获取HTML(其中包含JS),然后运行它。到那时,那些PHP语句已经执行,服务器也不知道它们。
所以你的PHP脚本被执行并执行以下操作
<?php $window_size = 'big'; ?>
<?php $window_size = 'small'; ?>
它忽略了if,因为它不是PHP if语句,因此$window_size
的值总是small