2010-06-18 9 views
2

어떻게 브라우저의 높이와 너비를 PHP로 얻을 수 있습니까? 자바 스크립트에서 PHP로 데이터를 전송하는 것처럼? innerHeightInnerWidth을 사용하는 것으로 생각합니다.자바 스크립트에서 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

JavaScript에서 PHP 스크립트로 AJAX 호출을 만들어야합니다. 이 PHP 스크립트는 현재 세션에서 화면 해상도를 저장합니다 (이 경우 세션을 사용해야합니다). 나중에 요청 된 PHP 스크립트는 JavaScript 스 니펫이 전달한 화면 해상도에 액세스 할 수 있습니다.

+0

나는 AJAX에서 너무 나빠. 그것은 자바 스크립트와 PHP로 할 수 있습니다. 그들이 같은 페이지에있을 때. – TRAVA

+2

@Trava 아니요, 아약스 없이는 할 수 없습니다. 죄송합니다. Javascript는 PHP가 페이지를 생성 한 후에 실행되며 PHP로 다시 전달할 기회가 없습니다. 이것이 Ajax가 존재하는 이유입니다. –

+0

@Trava는 jQuery의 Ajax 예제를 확인합니다. http://api.jquery.com/jQuery.ajax/ 몇 줄의 코드만으로 쉽게 접근 할 수 있습니다. –

0

화면 해상도를 얻을 수 있지만 JavaScript는 이 아니며 PHP입니다. PHP는 서버 측입니다. 그러나 ajax 또는 다른 방법을 사용하여 PHP에 JavaScript 통과 값을 지정할 수 있습니다.

+0

, 내가 좋아, – TRAVA

+0

OK) PHP에 자바 스크립트에서의 데이터 전송을 필요로한다. 죄송합니다. TO PHP. – TRAVA

1

PHP는 웹 서버에서 실행됩니다.
PHP 프로세서가 HTML을 출력합니다.이 HTML은 클라이언트 브라우저으로 전송됩니다.
-이 시점에서 PHP는 이고 완료는입니다. 은 다른 것을 할 수 없습니다..
이제 브라우저가 HTML 페이지를 해석하고 클라이언트 컴퓨터에서의 javascript - 을 실행합니다.

  • PHP는이 서버에 있기 때문에 자바 스크립트가
  • PHP의이 를 완료 한 클라이언트에있는 동안

    자바 스크립트 는 PHP에 값을 전달하지 수 자바 스크립트 이 시작될 때까지 실행

다른 사람들이 언급했듯이이 시점에서 할 수있는 최선의 방법은 나중에 높이/너비 정보를 서버에 다시 전달하여 나중에 사용하기 위해 또는 크기 정보가 주어지면 페이지를 동적으로 업데이트하는 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

다음은 라이브러리를 사용하지 않고 smple ajax 객체입니다.클라이언트 측에서

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

같은 사용, PHP에서

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

, 확인

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