2013-03-19 4 views
0

Возможно ли, чтобы скрипт PHP передавал значения, собранные Javascript?PHP, передающий значения, собранные Javascript

Я просто думаю, что если Javacript сможет захватить разрешение экрана пользователя, могу ли я использовать это значение для запуска PHP (функция IF и Else) для загрузки определенного файла php?

Чтобы иметь четкое объяснение,

  1. Javascript обнаружит разрешение экрана пользователя.
  2. После определения разрешения экрана PHP-скрипт загрузит правильный файл php.
  • ЕСЛИ разрешение экрана больше, чем 1200, дисплей РНР файл № 1
  • ЕСЛИ разрешение экрана больше, чем 1920, дисплей РНР файл № 2
  • ЕСЛИ разрешение экрана меньше, чем 1200 = отображение PHP-файла № 3

Кстати, я забыл упомянуть, что PHP-файл - это всего лишь небольшая часть веб-страницы. Предположим, что php-файл является заголовком. В PHP-файле # 1, # 2 и # 3 есть разные дизайны и рекламные объявления google внутри.

PHP # 1 & # 2 имеет 728px ширина Google AdSense объявления в то время как PHP # 3 имеет 300px ширина Google AdSense объявления

это возможно? ваша помощь очень ценится. Большое спасибо! :)

+2

Вы можете использовать AJAX. После того как JavaScript захватил разрешение экрана, отправьте запрос на страницу, которая будет генерировать перенастроенный вывод. – user829323

+1

Возможно, но, как правило, UX/front-end дизайн следует оставить на клиентских языках. – Emissary

+1

Почему бы не использовать запросы на CSS-носители и не сохранить их на стороне клиента? Я предполагаю, что вы делаете это для целей макета. –

ответ

1

Вам не нужно использовать PHP для этого.

Может быть что-то вроде этого ?:

if ((screen.width>=1024) && (screen.height>=768)) 
{ 
window.location="highres.html"; 
} 
else 
{ 
    window.location="lowres.html"; 
} 

Если вы должны использовать PHP, вы можете сделать простой вызов Ajax.

1

Конечно, это возможно. Сначала вы загружаете страницу, которая включает скрипт, получающий разрешение, затем вы отправляете значения с помощью POST или GET, и вы возвращаете то, что хотите.

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

1

Вы можете сделать это 2 способами:

  • Via JavaScript, решите файл для загрузки в соответствии с результатом
  • Отправить результат в PHP (GET OT POST), и пусть он решает, что делать (AJAX или перенаправление)

Во всяком случае, PHP не очень нужен

0

Вы можете загрузить страницу с JQuery скрипт и иметь PHP возвращает правильный файл HTML. Тогда вы называете что-то вроде этого:

$.post("page.php", {sel:"cond1", dpiy: dpi_y, dpix: dpi_x}, function(j) 
{ 
    //load form 
    $("#ext_page").html(j); 
}); 
0

Других ответов сосредоточиться на AJAX, которые - ради нескольких объявлений AdSense - хотя чище, может быть более сложным решением, чем это действительно необходим - ради полнота, есть дешевая и простая альтернатива: сначала сбрасывать все на страницу и решать, как с ней справиться.

например. не в вашем HTML:

<div id="ADgt1200" style="display:none;"> 
    <!-- adsense code--> 
</div> 
<div id="ADgt1920" style="display:none;"> 
    <!-- adsense code--> 
</div> 
<div id="ADlt1200" style="display:none;"> 
    <!-- adsense code--> 
</div> 

затем в вашем Javascript:

//pseudo 
if(whatever.width > 1200) 
    document.getElementById('ADgt1200').style.display = 'block'; 
else { /* etc... */ } 

В ответ на ваш комментарий:

Это был просто примитивный пример, на том же принципе, не существует причина, по которой вы не смогли сохранить код AdSense в переменной javascript ...

<script> 
    var myAdsense = [ 
     'gt1200': '<adsense/>', 
     'gt1920': '<code/>', 
     'lt1200': '<block/>' 
    ]; 

    window.onload = function(){ 
     if(whatever.width > 1200) 
     document.getElementById('myEl').innerHTML = myAdsense['gt1200']; 
     // etc. 
    }; 
</script> 
<div id="myEl"></div> 

... Таким образом, ни один из кода не загружается в DOM, если вы этого не сделаете.

+0

извините, но, к сожалению, это не сработает. Adsense позволяет максимально 3 объявления на страницу. Если я это сделаю, страница автоматически загрузит 3 объявления AdSense. Пользователю видна только 1, а две другие скрыты. на моей странице есть 3 объявления Google, все они приносят значительный доход. –

+0

@KareenLagasca Есть способы и средства ... Это определенно жизнеспособно. Обновленный ответ. – Emissary

+0

Не поймите меня неправильно, AJAX - это потрясающе, но это не обязательно. Я не смотрел код AdSense в возрасте, но, конечно же, он в каком-то формате, где вы могли бы даже создать правильный код на лету? – Emissary

0

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

  1. Проверьте, разрешено ли разрешение экрана в $ _SESSION ['screen-res']. Если нет, переадресуйте браузер на «check-screen-res.php». Этот PHP-файл должен иметь соответствующий код javascript для определения разрешения экрана, а затем хранить его в сеансе, используя переменную 'screen-res'.

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

Конечно, эта стратегия не будет работать, если пользователь изменит свое разрешение во время нахождения на вашем сайте. Вероятно, вы могли бы позаботиться об этом, подняв соответствующее событие в случае обнаружения изменения разрешения экрана; И если да, обновите свою переменную сеанса и т. Д. Соответственно.

Надеюсь, это поможет. Дайте мне знать, если это стратегия, за которой вы хотите следовать, и я буду рад обновить этот поток некоторым кодом php/javascript.

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