Не срабатывает условие
Здравствуйте! Подскажите, пожалуйста, почему не срабатывают условия. Есть скрипт определяющий разрешение экрана, его результат записываю в переменную, а потом создаю условия. Вот так работает:
$width='<script>var ScreenWidth = screen.width; document.write(ScreenWidth);</script>'; if ($width = 1280) { echo "Да"; }else{ echo "Нет"; }, если же указываю диапазон, то нет: $width='<script>var ScreenWidth = screen.width; document.write(ScreenWidth);</script>'; if ($width >= 1280 && $width <= 1440) { echo "Да"; }else{ echo "Нет"; }. подскажите, пожалуйста, почему такое происходит? |
А первый "работает" потому, что отвечает "Да", поэтому вы заключаете, что код рабочий?
|
Да, а разве нет?
|
Цитата:
'<script>var ScreenWidth = screen.width; document.write(ScreenWidth);</script>' - для браузера это JS код, который может быть выполнен, если его вывести в браузер, чего у вас нет и для РНР, это просто строка. Но даже будучи выведенным в браузер результат его работы не будет доступен серверному языку. В первом случае вы будете всегда получать "Да", так как в условии вы не проверяете на равенство, а переназначаете значение этой переменной на 1280: if ($width = 1280) булево значение которой конечно же возвратит true, вот отсюда и "Да", и "ура, работает". Если же написать условие правильно: if ($width == 1280) то конечно же будет "Нет", так как строковое значение $width не равно 1280, оно же не будет соответствовать и $width >= 1280 && $width <= 1440. |
Что посоветуете? Сначала передать значение на сервер, и уже потом его использовать?
|
Или использовать JS, дописав скрипт?
|
Цитата:
Если же серверу нужно принять некое решение зависящее от разрешения, то первый запрос пользователя, это ради получить его разрешение, после чего обновление/переход на код использующий его. |
Да, это отображение содержания зависящее от разрешения. Есть код таймера:
jQuery(document).ready(function() { jQuery(".eTimer").eTimer({ etType: 0, etDate: "03.09.2017.0.0", etTitleText: "До окончания акции осталось:", etTitleSize: 20, etShowSign: 1, etSep: ":", etFontFamily: "Trebuchet MS", etTextColor: "#a3a3a3", etPaddingTB: 15, etPaddingLR: 15, etBackground: "#333333", etBorderSize: 0, etBorderRadius: 2, etBorderColor: "white", etShadow: " 0px 0px 10px 0px #333333", etLastUnit: 4, etNumberFontFamily: "Impact", etNumberSize: 35, etNumberColor: "white", etNumberPaddingTB: 0, etNumberPaddingLR: 8, etNumberBackground: "#11abb0", etNumberBorderSize: 0, etNumberBorderRadius: 5, etNumberBorderColor: "white", etNumberShadow: "inset 0px 0px 10px 0px rgba(0, 0, 0, 0.5)" }); }); надо, чтобы значение etNumberSize было в зависимости от разрешения экрана. Можно было бы это значение выводить как разрешение деленное на 10 с получением целого числа и подставлять в значение etNumberSize. |
Ну так и пишите в этом js-коде:
..., etNumberSize: (screen.width/10).toFixed(), .... |
Спасибо большое!
|
Часовой пояс GMT +3, время: 15:48. |