Публикация ширины экрана с помощью jQuery - PullRequest
1 голос
/ 16 января 2010

Используя этот код

var sw = window.screen.width;
$.post("http://www.example.com/track.php", {result: sw
}, "html");

и $ _SERVER ['result']; на сервере я пытаюсь получить ширину экрана, но это не работает. Что-то не так с «результатом». Я новичок в Javascript и JQuery ...

http://api.jquery.com/jQuery.post/

Ответы [ 4 ]

3 голосов
/ 16 января 2010

$_SERVER содержит переменные сервера, то есть такие вещи, как операционная система, URL-адрес реферера, пути к различным папкам на сервере.

Вместо этого вы ищете либо массив $_POST, либо массив $_GET, либо массив $_REQUEST. Я мог бы заявить об очевидном здесь, но вот что они содержат:

  • $_POST содержит список всех переменных, помещенных в сценарий.
  • $_GET содержит список всех переменных в строке запроса (например: someScript.php?x=1&y=2)
  • $_REQUEST содержит слияние $_POST, $_GET и $_COOKIE (обычно в таком порядке). Я не рекомендую использовать это: вы должны знать методы, которые вы используете, чтобы получить переменные в ваш скрипт и использовать этот массив специально.

В вашем случае вам нужно взглянуть на массив $_POST. Всегда удобно запустить это один раз:

print_r($_POST);

Это покажет вам все, что размещено на этой странице.

3 голосов
/ 16 января 2010

Функция jQuery $ .post отправляет почтовый запрос на сервер, что означает, что для доступа к значению «result» вам необходимо получить его из суперглобального $ _POST.

Попробуйте $ _POST ['result'] вместо $ _SERVER ['result'].

Эти описания могут помочь (источник: http://www.nusphere.com/php/php_superglobals.htm):

  • $ _ POST - Суперглобальный $ _POST представляет данные, отправленные в PHP скрипт через HTTP POST. Это обычно форма с методом POST.
  • $ _ SERVER - Суперглобальный $ _SERVER представляет доступные данные на PHP-скрипт с веб-сервера сам (не то, что вы ищете)
  • $ _ REQUEST - Суперглобальный $ _REQUEST представляет собой комбинацию $ _GET, $ _POST и $ _COOKIE (будет работа, но зачем искать GET и COOKIE когда вы знаете значение в POST?)
1 голос
/ 16 января 2010

Попробуйте сделать:

echo $_POST['result'];
1 голос
/ 16 января 2010

Использование $_REQUEST['result']

$_SERVER - это массив, содержащий информацию, такую ​​как заголовки, пути и расположения скриптов. Записи в этом массиве создаются веб-сервером. Нет никакой гарантии, что каждый веб-сервер предоставит какой-либо из них; серверы могут пропустить некоторые или предоставить другие, не перечисленные здесь.

$_REQUEST - это ассоциативный массив, который по умолчанию содержит содержимое $_GET, $_POST и $_COOKIE.

Правильный способ - использовать $_POST['result'], как предлагают другие здесь.

...