Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的window.innerWidth JavaScript值_Javascript_Php - Fatal编程技术网

PHP中的window.innerWidth JavaScript值

PHP中的window.innerWidth JavaScript值,javascript,php,Javascript,Php,我想基于window.innerWidth设置一个PHP变量 出于测试目的,我将浏览器设置为全尺寸和document.write(window.innerWidth)返回1920,这似乎是正确的 但是,下面的代码总是为PHP变量$window\u size返回“small” <script> if(window.innerWidth > 1000){ <?php $window_size = 'big'; ?> } else { <?php

我想基于
window.innerWidth
设置一个PHP变量

出于测试目的,我将浏览器设置为全尺寸和
document.write(window.innerWidth)
返回1920,这似乎是正确的

但是,下面的代码总是为PHP变量
$window\u size
返回“small”

<script>
 if(window.innerWidth > 1000){
    <?php $window_size = 'big'; ?>
 } else {
    <?php $window_size = 'small'; ?>
 }
</script>

如果(window.innerWidth>1000){
}否则{
}

有什么想法吗?

您无法通过这种方式在后端确定窗口大小,JS需要在某个时候将此数据发送到后端,以便了解窗口大小

<script>
 var windowSize;
 if(window.innerWidth > 1000){
    windowSize = 'big';
 } else {
    windowSize = 'small';
 }
 $.ajax({ url: 'some/back/end', data: windowSize }); // send to server.
</script>

var窗口大小;
如果(window.innerWidth>1000){
windowSize=‘大’;
}否则{
windowSize=‘小’;
}
$.ajax({url:'some/back/end',data:windowSize});//发送到服务器。
这是因为您的后端PHP生成HTML。因此,您的浏览器将获取HTML(其中包含JS),然后运行它。到那时,这些PHP语句已经执行,服务器不知道它们

因此,执行PHP脚本并执行以下操作

<?php $window_size = 'big'; ?>
<?php $window_size = 'small'; ?>


它忽略if,因为它不是一个PHP if语句,因此
$window\u size
的值总是

不能这样做,PHP是在服务器上处理的,而不是在浏览器中。这里有一个提示:PHP的用途是什么?php会生成什么?相关:如果你的If语句每次都比设置的值小多少?那么,不管是谁否决了,请解释原因。如果你想让php知道窗口大小,那么唯一的方法就是让JS将该信息发送到服务器。通过这种方式,服务器可以保存变量并在以后使用它。这可能被否决,因为您回答了一个非常常见的问题(这使它成为重复问题),而不是标记它。