2013-09-17 2 views
0

Я хочу сделать, чтобы мой сайт получил текущую ширину окна, которое посетил посетитель. Затем я хочу иметь два разных варианта. Что-то вроде этого:Изменение переменной PHP на основе ширины устройства

<script> 
if (screen.width < 768) { 
<?php $a = 1; ?> 
} else { 
<?php $a = 2; ?> 
} 
</script> 

То, что я пытаюсь сделать то, что моя переменная PHP должна изменяться в зависимости от ширины устройства.

Wich way - самый простой способ сделать это? Я не могу писать или понимать одну строку AJAX, поэтому, если это единственный способ, я был бы очень доволен каким-то руководством, чтобы сделать это как можно проще.

И сделать это с помощью css - это не правильный путь. Поэтому, пожалуйста, не говорите мне, что нужно делать с css.

Edit:

Я не уверен, если вы, ребята поняли, что я действительно хочу, чтобы выйти из этого кода.

Поэтому я напишу более конкретно.

У меня есть сайт с изображением слайдера сверху, который показывает две последние новости. Прямо под этим у меня есть запрос сообщений, которые настроены на смещение 2, потому что я не хочу запрашивать те же новости, что и у меня на моем слайдере.

Так что мой код что-то вроде этого:

<?php 
$offset = 2; 
$showposts = 10; 
?> 

    <?php query_posts(array('offset' => $offset, 'showposts' => $showposts,'cat' => '8')); ?> 

И я не могу сделать два diffrent запросов, потому что у меня есть рекламные скрипты, которые не могут быть загружены более чем 1 раз, потому что тогда они не будут отображаться в все. Таким образом, все это нужно делать в одном запросе, поэтому его необходимо изменить на основе ширины устройства.

Теперь я забыл сказать, что на моей версии для ширины < 768 Я делаю свой слайдер пропадают, и поэтому я хочу, чтобы иметь смещение 0 вместо 2.

Я надеюсь, что это имеет смысл ...

+0

Вы не можете смешивать JavaScript с PHP.Вы могли бы только $ _GET или $ _POST вернуться к скрипту (или в какой-то форме AJAX). – Sablefoste

+1

Вы не можете получить ширину экрана до тех пор, пока страница не будет отправлена ​​клиенту. Вы можете испускать оба значения для кода на стороне клиента и использовать его только на основе ширины экрана. Но это зависит от того, что означают эти ценности. – David

+0

Прочитайте это [вопрос] (http://stackoverflow.com/questions/1504459/getting-the-screen-resolution-using-php). Может быть, это поможет вам понять, почему, почему бы и нет, и как вы можете добиться этого из другого pov. – Lan

ответ

1

Вы можете использовать файлы cookie для связи между JS и PHP.

Вот JS, чтобы установить или обновить печенье:

document.cookie = "someKey=someVal; path=/;"; 

И тогда вы можете использовать $_COOKIE["someKey"] для доступа к данным в PHP.

Есть скрипты PHP, которые пытаются обнаружить тип устройства у пользовательского агента, вот что я использую, когда этот файл cookie недоступен (загрузка первой страницы). Поэтому я могу изменить свой пользовательский интерфейс перед загрузкой страницы на основе разумной догадки.

+0

Почему downvote? Это работает. – Jasper

+0

Этот ответ зависит от того, разрешены ли файлы cookie. Их можно отключить в браузере, а затем вы не сможете определить ширину. – tnschmidt

+0

@ schmidt382 Правда. Вы знаете какой-либо стандартный способ определить, отключены ли файлы cookie? – Jasper

1

Простой способ, которым вы должны это сделать, - использовать AJAX. Затем вы сможете сделать запрос на сервер и выполнить определенный скрипт.

$.post("http://yoursite.com/script.json", { windowsWidth: screen.width }); 

Вы можете получить ширину окна для переменной, а затем сделать все, что захотите внутри своего скрипта.

+0

Как я писал ранее; Я не знаю, как это сделать, и AJAX не имеет для меня никакого смысла. Вы прочитали мое отредактированное описание проблемы? –

+0

Что вы ищете, как правило, выполняют с помощью запросов CSS3 или с помощью jQuery и другой таблицы стилей. Никто не делает то, что вы пытаетесь сделать, это просто не имеет смысла ... Подумайте о других способах и забудьте об использовании условий в PHP с шириной окна. – Alvaro

-1

попробовать что-то вроде этого:

var w = $(document).width(); // if you are using jquery 
var v; 
if (w < 768) 
    v = <?php echo $var;?>; 
else 
    v = <?php echo $var2;?>; 
+0

Если вы занижены, потратьте время на комментарий lol –

+0

Я не запустил его, но ... Таким образом, вы передаете переменную PHP переменной JavaScript. – Alvaro

+0

Вы правы. Не правильно понял вопрос стартера, хотя это действительно могло бы решить его проблему, потому что никто на самом деле не знает, что он хочет –

Смежные вопросы