2010-01-16 2 views
1

Используя этот кодпроводки ширина экрана с помощью JQuery

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

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

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

+1

Определите, что «это не работает». Имеет ли значение $ _SERVER ['result'] какое-либо значение? Некоторые из PHP тоже будут полезны. – GlenCrawford

+0

ничего не дает – ilhan

ответ

3

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

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

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

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

print_r($_POST); 

Это покажет вам все, что отправлено на эту страницу.

+0

Есть ли какие-либо особые проблемы, с которыми мы можем столкнуться, используя REQUEST или это только о согласованности? Позвольте мне угадать, что если POST и COOKIE содержат переменные с тем же именем, верно? – Amarghosh

+0

yep. довольно много. Если вы ожидаете, что переменная появится через сообщение, тогда просто отметьте '$ _POST'. Неожиданные вещи, как правило, приводят к неожиданному поведению, поэтому вы должны сделать это как можно скорее. – nickf

1

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

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

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

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

+0

почему бы не POST? , – nickf

+0

Я не имел в виду «не использовать POST». Из вопроса это звучало, как будто он запутался между «SERVER» и «REQUEST» - вот почему я продолжил разграничение между ними. Будет редактировать в POST. – Amarghosh

1

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

echo $_POST['result']; 
3

Функция .post JQuery $ отправляет запрос на почтовый сервер, что означает доступ к значению «результата», вы должны получить его от $ _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?)
Смежные вопросы