Intereting Posts
preg_match с использованием переменной? PHP: необходимо дважды войти в систему до тех пор, пока не будут установлены переменные сеанса PHP: strftime (), date () или DateTime, что лучше? Использование XAMPP, как мне заменить PHP 5.3 для PHP 5.2? установить CakePHP на Mac osx: проблемы с apache Объединение нескольких массивов, сортировка по количеству массивов существует ли более короткий способ настройки запросов при фильтрации результатов? Преобразуйте PNG в JPG и установите прозрачный фон в белый цвет с помощью ImageMagick и PHP Получение необработанных SQL-запросов в CodeIgniter 1.7 PHP XML: Недопустимое смещение, но оно в массиве? Перенаправление пользователя на мой сайт на странице холста Facebook PHP-объект как XML-документ PHP preg_replace три раза с тремя разными шаблонами? правильно или неправильно? Возврат пользователей с помощью API paypal rest Как предотвратить появление странных символов на веб-страницах

получить ширину экрана в javascript-переменную и отправить ее через ajax на php-страницу, чтобы избежать загрузки страницы

Это JS чтобы определить разрешение экрана на моей странице naming index.html и отправить его на php, чтобы значения можно было восстановить с помощью $_GET : –

 <script type="text/javascript"> width = screen.availwidth; height = screen.availheight; if (width > 0 && height >0) { window.location.href = "http://localhost/main.php?width=" + width + "&height=" + height; } else exit(); </script> 

Это содержание моего имени файла PHP process.php : –

 <?php $screen_width = $_GET['width']; $screen_height = $_GET['height']; //EDITED PORTION echo '<style>#Wrapper {width:'.$screen_width.';}</style>'; ?> 

Теперь, после получения размера экрана, я хочу отобразить index.php .

УКАЗЫВАЙТЕ ЭТИ ШАГИ, КАК ПОНИМАТЬ ПУТЬ, ЧТО Я ХОЧУ, ЧТОБЫ РАБОТАТЬ: –

  1. Начало загрузки страницы
  2. Javascript обнаружил доступную ширину экрана.
  3. Он передает его в файл php, а переменная PHP получает экран ширины экрана.
  4. Затем страница отображается с использованием этой переменной php (означает, что ширина страницы задается с использованием этой переменной php)

В течение всего процесса index.php не следует перезагружать. Итак, как это можно сделать?

РЕДАКТИРОВАТЬ:

Когда JS передает значение в файл php, он загружается, и я хочу получить разрешение экрана и, соответственно, установить ширину страницы сайта. Но если JS отправит данные в php-файл, и если мы получим его через ajax, может случиться так, что мой сайт будет полностью загружен, и стиль не будет реализован, потому что он уже загрузил все материалы до работы ajax.

Есть ли какой-либо метод, который достаточно эффективен, или мы можем сделать это так, чтобы он стал эффективным.

Это мой EDIT: 2

Чтобы быть более ясным, я действительно объясню, что я хочу достичь, используя следующее изображение:

На самом деле я хочу реализовать такие вещи

Теперь, если плохо получить разрешение экрана сказать 800px то я знаю, что я хочу вычесть 200px левой стороны от него, поэтому он станет 600px и поскольку мои 250px я смогу добавить только два. Поэтому, чтобы не показывать, что 100px вправо, я 100px ширину страницы сайта до 100px .

Вещи, которые я могу сделать в php, но как заставить все делать в одно и то же время на одной странице?

Вся область, которую вы можете назвать #Wrapper Right One, как #SideBar Left Area, как #LeftContent

Надеюсь, я хорошо объяснил ситуацию. Поэтому, пожалуйста, если кто-то может помочь мне сделать нужное 🙂

Related of "получить ширину экрана в javascript-переменную и отправить ее через ajax на php-страницу, чтобы избежать загрузки страницы"

Я не уверен, понял ли я вашу проблему, но это то, что у меня есть: если вы только намереваетесь получить ширину экрана, а затем установите класс, я откажу вам в этом. Это не приятно, и в будущем, если вам нужно изменить макет страницы, вы будете обречены на то, что все эти эхо в php и вы избежите много перенаправления (index.html -> process.php -> index.php ).

В вашем примере вы можете сделать все это в Javascript.

Это пример с JQuery

 var width = $(window).width(); //get the width of the screen $('#Wrapper').css("width",width); //set the width to the class 

Если идея касается очень разных разрешений экрана (от ПК до SmartPhones), вам следует рассмотреть возможность изменения вашего подхода.

Удачи 🙂


ПОПРОБУЙТЕ ЭТО: (Я считаю, что вы хотите)

Вы можете сделать это только с помощью JS и CSS. Вот пример:

установите стиль для вашего поля тела и вашего тестового div:

 <style type="text/css"> body { margin: 0px 0px 0px 200px; } .divForTesting { width: 250px; border: 1px solid green; height: 100px; float: left; } </style> 

затем добавьте этот скрипт:

 <script> // get the screen width var width = $(window).width(); // get the number of pixels left in the screen (which is the width // minus the margin you want, rest by 250px which is the "inner boxes" width) var size = (width - 200) % 250; // then re-set the margin (the "-10" is because you'll need extra space // for borders and so on) $('body').css("margin-left",200+(size-10)); </script> 

и протестируйте его с помощью этого html:

 <!-- I've aligned the outter div to the right --> <div style="border: 1px solid red; float:right;" id="test"> <div class="divForTesting">test</div> <div class="divForTesting">test</div> <div class="divForTesting">test</div> <div class="divForTesting">test</div> <div class="divForTesting">test</div> <div class="divForTesting">test</div> <div class="divForTesting">test</div> <div class="divForTesting">test</div> <div class="divForTesting">test</div> </div> 

Он работает в разных разрешениях.

Попробуй 🙂

Я, наконец, получаю решение по своему собственному вопросу 🙂

 <script type="text/javascript"> var width = screen.availWidth; var fwidth = (width - 270); var i, k = 0; var j =2; for (i=1; i<=j; i++) { fwidth = fwidth - 220; if (fwidth < 220) { j = j -1; } else { k = k + 1; j = j + 1; } } var containerwidth = (width - (fwidth + 10)); var contentwidth = containerwidth - 250; document.write('<style type="text/css"> .container {width:' + containerwidth + 'px; } .mainContent { width:' + contentwidth + 'px; } </style>'); </script> 

Где contentwidth – это серый контент, а #Wrapper containerwidth#Wrapper по #Wrapper вопросу …

Вы можете использовать javascript lib, например jQuery. Вместо:

 window.location.href = "http://localhost/main.php?width=" + width + "&height=" + height; 

Вы можете позвонить:

 $.get("http://localhost/main.php?width=" + width + "&height=" + height, function(data, textStatus, jqXHR) { // replace the html body with the output of main.php $('body').html(data); // you might want to customize that }); 

Документация функции $ .get () jQuery .