Obter largura e altura da janela (RESOLVIDO)

Olá…
Eu tenho esse código, com o qual obtenho a largura e a altura da janela.

$SG_Width = “”;
$SG_Height = “”;

echo $SG_Width ." x “. $SG_Height .”
";

Agora, nas duas variáveis, não consigo deduzir que tipo de dados tenho (deveria tê-lo em int para poder usá-lo em um procedimento)
alguma sugestão?
Muito obrigado!

Hola…
Tengo este código, con el que obtengo el ancho y alto de la ventana.

$SG_Width = “”;
$SG_Height = “”;

echo $SG_Width ." x “. $SG_Height .”
";

Ahora, en las dos variables, no logro deducir que tipo de dato que tengo (debería tenerlo en int para poder usarlo en un procedimiento)ç
alguna sugerencia?
Muchas gracias!

?>
<script> document.cookie = {"myJavascriptVar" : window.innerWidth} </script>
<?php
$SG_Width= $_COOKIE['myJavascriptVar'];
echo $SG_Width;
if ($SG_Width >= 1000) {
	echo "mayor<br>";
} else {
	echo "menor<br>";
}

Isso não funcionará em todos os navegadores e com certeza não funcionará se os cookies não forem permitidos

Para transferir dados do cliente para o servidor você precisa usar Ajax ou Postar os dados no servidor

Em algum lugar no seu cabeçalho ou no seu onApplicationInit adicione

?>
$(function() {
    $.post('../blankapp/index.php', { width: screen.width, height:screen.height }, function(json) {
        if(json.outcome == 'success') {
            if (screen.width >= 1000) {
               mayor<br>
            } else {
               menor<br>
            }
        } else {
            // Mostrar alerta ou o que você quiser
        }
    },'json');
});
<?php

No aplicativo em branco

Adicionar onExecute

if(isset($_POST['width']) && isset($_POST['height'])) {
   $screen_width = $_POST['width'];
   $screen_height = $_POST['height'];
} else {
    // Problema
}

Com Ajax ou POST você pode transferir o que quiser do cliente para o servidor

Olá…
Não consigo fazer seu código funcionar.

  • Adicionei o script no app inicial (adicionei também o , e o link para jQuery, para que não dê erro.
  • Gero o aplicativo blankapp
    ‘…/blankapp/index.php’
  • Executo a aplicação inicial e, aparentemente, não passa pelo blankapp, para carregar a largura e altura da tela

Você pode forçar a chamada para a função

?>
<script>
   $(document).ready(function() {
		getScreenSize();
   });

   function getScreenSize() {
        $.post('../blankapp/index.php', { width: screen.width, height:screen.height }, function(json) {
             if(json.outcome == 'success') {
                 if (screen.width >= 1000) {
                     mayor<br>
                 } else {
                     menor<br>
                }
              } else {
                 // Mostrar alerta ou o que você quiser
              }
         },'json');
     });
</script>
<?php

Você também pode fazer uma chamada ajax em vez de uma postagem

$.ajax({
        url: '../blankapp/index.php',
		type: 'POST',
		data: 'width=' + screen.width + '&height=' + screen.height ,
		success: function(data){
                 if (screen.width >= 1000) {
                      mayor<br>
                 } else {
                      menor<br>
                 }
		},
		error: function(data) {
		     // Mostrar alerta ou o que você quiser
		}
});

Ainda não consigo fazer funcionar.

Não consigo fazer a leitura do valor passado pelo script funcionar no blankapp…

Não costumo intervir em tópicos cujo outro colega já está tentando ajudar, mas como vi que está havendo uma dificuldade na obtenção do resultado, segue um exemplo que acabei de criar para tentar ajudar na solução:

https://iwh.tec.br/scriptcase/blank_size_window/index.php

image

Evento onExecute da Blank:

ob_clean();
//criando dinamicamente o script php para acesso ajax (caso não exista no diretório corrente)
//receberá parâmetros do Js e colocará em sessão
$contentPHP = <<<'PHP'
<?php
session_start();
if($_POST)
{
	foreach ($_POST as $key => $value)
	{
		$_SESSION[$key]=$value;
	}
}
PHP;
if (!file_exists('ajax.php')) {
	file_put_contents('ajax.php', $contentPHP);
        //cria arquivo ajax.php reexecuta aplicação blank
	sc_redir(blank_size_window);
}
ob_flush();
//inclui bib jquery
//após carga do documento lê dimensões da tela (veja bem da tela não da janela do browser)
//executa script ajax passando a altura e largura do Js para o PHP

?>


sc_include_lib("jquery");

//
<script>
$( document ).ready(function() {
    var altura = window.screen.height;
	var largura = window.screen.width;
	
	$.ajax({
  		method: "POST",
  		url: "ajax.php",
  		data: { width: altura, height: largura }
	})
  	.done(function( msg ) {
    	//alert( "Data Saved: " + msg );
  	});
	
});
</script>
<?php


//exibe o resultado da super global $_SESSION criada no script ajax
if (isset($_SESSION['width'])) {
	echo 'Altura:',$_SESSION['width'], '<br>Largura:', $_SESSION['height'];
}

//Nota, a app blank deve ser rodada uma vez para criar o arquivo ajax.php.

TAGS: HAROLDO, PASSANDO VALORES DO JAVASCRIPT PARA PHP, BLANK, JQUERY, AJAX, NOWDOC, PHP

Muito obrigado!
Estou entendendo mal ou tenho que criar dois aplicativos em branco:
Um para a primeira parte do código (até a inclusão de JQuery)
Outro, blank_size_window, para a segunda parte do código
É assim?
novamente muito obrigado!

Uma app só.
Jogue o código todo no evento onExecute da blank.
Montei de forma para não precisar de 2 aplicações.

Olá…
Funcionou!
O ob_flush() me deu problemas. Eu o substituí por ob_get_contents() e funcionou!
Muito obrigado!!!

1 Curtida

Marque no assunto como Resolvido.