2010-06-18 2 views
2

Как я могу получить высоту и ширину браузера для php? Как передача данных с javascript на php? С использованием innerHeight и InnerWidth, я думаю.Передача данных с JavaScript на PHP

(мне просто нужно показать пользователь маленькой картинку, если он имеет небольшой Размер экрана и большой, если большие и без данных о размере экране я не могу это сделать)

У меня есть так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<link rel="stylesheet" href="css/slideshow.css" type="text/css" /> 

<script> 
document.write('script.php?screen=' + screen.width + 'x' + screen.height'); 
</script> 

</head> 
<body> 

<?php $lol=$_GET['screen']; 
<?php echo "SIZE : $lol" ?> 

</body> 
</html> 

И он не работает. Что я делаю неправильно?

ответ

4

Вам нужно будет сделать вызов AJAX с JavaScript на PHP-скрипт. Этот скрипт PHP сохранит разрешение экрана в текущем сеансе (для этого вам понадобятся сеансы). Сценарий PHP, запрошенный позже, может затем получить доступ к разрешению экрана, переданному фрагментом JavaScript.

+0

Мне так плохо в AJAX. Это можно сделать только с помощью javascript и php. Когда они находятся на одной странице. – TRAVA

+2

@ Трава нет, это невозможно сделать без Ajax, извините. Javascript запускается после того, как PHP сгенерировал эту страницу и не имеет шансов передать что-либо обратно на PHP. Вот почему Ajax существует. –

+0

@Trava проверяет примеры Ajax jQuery: http://api.jquery.com/jQuery.ajax/ легко войти в систему, всего несколько строк кода. –

0

Вы можете получить разрешение экрана, но с помощью JavaScript NOT PHP. PHP - серверный. Тем не менее, вы можете иметь значения пароля JavaScript для PHP с помощью ajax или любого другого метода.

+0

Хорошо, я нужен перенос данных из JavaScript в PHP) – TRAVA

+0

ок, ок. Сожалею. TO php. – TRAVA

1

PHP работает на вашем веб-сервере.
Процессор PHP выводит HTML, который передается клиенту браузер.
- на данный момент PHP завершено. Это ничего не может сделать.
Теперь браузер интерпретирует HTML-страницу и выполняет javascript - на клиентском компьютере.

Javascript не может передать значение в PHP, потому что

  • РНР находится на сервере в то время как браузер на клиенте
  • РНР имеет закончил запущен к моменту запуска javascript работает

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

2

Если вы не знаете AJAX, вы можете использовать ссылки для отправки информации на сервер с помощью метода GET.

<script language="javascript"> 
    function load(){ 
     document.getElementById('myAnchor').href="test2.php?sw="+screen.width+"&sh="+screen.height; 
    } 
</script> 
<body onload="load();"> 
<a id="myAnchor" href="#">Send to server</a> 
<?php 
if (isset($_GET)){ 
    print_r($_GET); 
} 
?> 
</body> 

Или вы также можете использовать формы для отправки информации на сервер.

2

Проект представляет собой объект smly ajax без какой-либо библиотеки.

http://www.pagecolumn.com/javascript/ajax_object.htm

В стороне клиента, использовать его как,

function foo() { 
    var screen=' + screen.width + 'x' + screen.height'; 
    ajax.getRequest("test_get.php",["screen"], [screen],function(data){ 
     alert(data); 
    }); 
} 

В PHP

<?php $lol=$_GET['screen']; 
echo "SIZE : $lol"; 
?> 
Смежные вопросы