Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

11-10-2016 09:48

O código abaixo captura medidas da tela, largura e altura, e informa se a página é ou não responsiva. Trabalha num único arquivo e usa variáveis PHP usando $_SESSION e $_POST.

<?php session_start(); $testhis = "no JavaScript"; if (isset($_POST['IsResponsive']) && !empty($_POST['IsResponsive'])) { $_SESSION['IsResponsive'] = $_POST['IsResponsive']; } if (isset($_SESSION['IsResponsive']) && !empty($_SESSION['IsResponsive'])) { $testhis = $_SESSION['IsResponsive'];}?> <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" id="viewport" content="target-densitydpi=high-dpi,initial-scale=1.0,user-scalable=no" /> <title>http://w3schools.invisionzone.com/index.php?showtopic=53354#entry293760</title> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> <script type="text/javascript"> <?php if (!isset($_SESSION['IsResponsive']) && !isset($_POST['IsResponsive']) || isset($_SESSION['IsResponsive']) !== isset($_POST['IsResponsive'])) { ?> function CheckScreenSize(){ var width = $(window).width(); var height = $(window).height(); if ((width <= 1023) && (height >= 768)) { IsResponsive('responsive'); } else {IsResponsive('no'); } } function IsResponsive(result) { $('#IsResponsive').val(result); $('#myform').submit(); } $(function() { CheckScreenSize(); }); <?php } ?> $(function() { $(window).resize(function() { window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>'; }); }); </script> <style type="text/css"> </style> </head> <body> <form id="myform" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"><input type="hidden" name="IsResponsive" id="IsResponsive"></form> <?php echo $testhis; ?> </body> </html>

Eu gostaria de exibir a largura numa variável PHP, mas não sei em que parte do código capturo o valor da largura.

Estou tentando uma adaptação, informando, de 100 px em 100 px, de zero até 1.500 px, as larguras. Como o código original, funciona perfeitamente ao se ajustar a largura do navegador, seja esticando-a ou a encolhendo, ou usando o modo responsivo do Firefox.

Tento exibir o conteúdo de width do JavaScript através document.write(width);, mas, se descomento essa linha, a largura é exibida, mas o restante do código para de funcionar.

Estou tentando enviar a largura por $_POST, criei outro formulário para isso, mas o conteúdo não é enviado. Eu também gostaria de exibir a largura na variável $_SESSION, se isso for possível.

Como posso informar, seja no código original, seja na minha tentativa de adaptação, a largura capturada em variáveis $_POST e $_SESSION?

Abaixo, minha tentativa de adaptação:

<?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?> <?php session_start(); if (isset($_POST['minha_largura']) && !empty($_POST['minha_largura'])) { $_SESSION['minha_largura'] = $_POST['minha_largura']; } if (isset($_SESSION['minha_largura']) && !empty($_SESSION['minha_largura'])) { $informa_largura_sessao = $_SESSION['minha_largura']; } echo $_POST['minha_largura']; echo "&nbsp;-&nbsp;"; echo "variável POST minha_largura"; echo "<br>"; echo $_SESSION['minha_largura']; echo "&nbsp;-&nbsp;"; echo "variável SESSION minha_largura"; echo "<br>"; echo $minha_largura; echo "&nbsp;-&nbsp;"; echo "variável minha_largura"; echo "<br>"; echo $_POST['width']; echo "&nbsp;-&nbsp;"; echo "variável POST width"; echo "<br>"; ?> <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" id="viewport" content="target-densitydpi=high-dpi,initial-scale=1.0,user-scalable=no" /> <title>http://w3schools.invisionzone.com/index.php?showtopic=53354#entry293760</title> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> <script type="text/javascript"> <?php if (!isset($_SESSION['minha_largura']) && !isset($_POST['minha_largura']) || isset($_SESSION['minha_largura']) !== isset($_POST['minha_largura'])) { ?> function CheckScreenSize(){ var width = $(window).width(); //document.write(width); if ((width >= 0 && width <= 100)) { minha_largura('largura até 100 px'); } if ((width > 101 && width <= 200)) { minha_largura('largura entre 101 px e 200 px'); } if ((width > 201 && width <= 300)) { minha_largura('largura entre 201 px e 300 px'); } if ((width > 301 && width <= 400)) { minha_largura('largura entre 301 px e 400 px'); } if ((width > 401 && width <= 500)) { minha_largura('largura entre 401 px e 500 px'); } if ((width > 501 && width <= 600)) { minha_largura('largura entre 501 px e 600 px'); } if ((width > 601 && width <= 700)) { minha_largura('largura entre 601 px e 700 px'); } if ((width > 701 && width <= 800)) { minha_largura('largura entre 701 px e 800 px'); } if ((width > 801 && width <= 900)) { minha_largura('largura entre 801 px e 900 px'); } if ((width > 901 && width <= 1000)) { minha_largura('largura entre 901 px e 1000 px'); } if ((width > 1001 && width <= 1100)) { minha_largura('largura entre 1001 px e 1100 px'); } if ((width > 1101 && width <= 1200)) { minha_largura('largura entre 1101 px e 1200 px'); } if ((width > 1201 && width <= 1300)) { minha_largura('largura entre 1201 px e 1300 px'); } if ((width > 1301 && width <= 1400)) { minha_largura('largura entre 1301 px e 1400 px'); } if ((width > 1401 && width <= 1500)) { minha_largura('largura entre 1401 px e 1500 px'); } } function minha_largura(result) { $('#minha_largura').val(result); $('#myform').submit(); } function exibe_largura() { $('#width').val(); //$('#width').text(width); $('#myform_2').submit(); } $(function() { CheckScreenSize(); }); <?php } ?> $(function() { $(window).resize(function() { window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>'; }); }); </script> </head> <body> <form id="myform" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> <input type="hidden" name="minha_largura" id="minha_largura"> </form> <form id="myform_2" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> <input type="hidden" name="width" id="width"> </form> <?php echo $informa_largura_sessao; echo "&nbsp;-&nbsp;"; echo "variável informa_largura_sessao"; echo "<br>"; ?> </body> </html>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

11-10-2016 10:05

Fiz o seguinte teste,

troquei

if ((width <= 1023) && (height >= 768)) { IsResponsive('responsive'); } else { IsResponsive('no'); }

por

if ((width <= 1023) && (height >= 768)) { IsResponsive(width); // 'responsive' } else { IsResponsive(width); // 'no' }

Esse valor da largura fica armazenado em:

<?php echo $testhis; ?>

que está logo após o formulário.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

11-10-2016 15:53

Olhos de lince. Simples e prático.

Eu dei mais uma limpada, assim:
function CheckScreenSize(){ var width = $(window).width(); //var height = $(window).height(); if (width > 0) { IsResponsive(width); // 'responsive' } /* if ((width <= 1023) && (height >= 768)) { IsResponsive(width); // 'responsive' } else { IsResponsive(width); // 'no' } */

Tenho um pequeno problema: os resultados da consulta SQL são carregados, mas quando é enviado o formulário PHP para a mesma página, o que vem de outra através de $_GET se perde, e a consulta SQL que usa o que vem de $_GET também se perde. Já vi algo como um misto de $_GET e $_POST. É necessário algo como enviar o que vem de $_GET através de href no próprio formulário, com onload, talvez.

Nesta linha, tentei isto, e não consegui:
window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>?variavel_1=<?php echo $_GET['variavel_1']; ?>&variavel_2=<?php echo $_GET['variavel_2']; ?>';

.
Tentei, também, isto, e não consegui:
<form id="myform" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" onload="location.href='teste.php?variavel_1=<?php echo $_GET['variavel_1']; ?>&variavel_2=<?php echo $_GET['variavel_2']; ?>'">

E, ainda, tentei isto, e, também, não consegui:
<input type="hidden" name="IsResponsive" id="IsResponsive" onload="location.href='teste.php?variavel_1=<?php echo $_GET['variavel_1']; ?>&variavel_2=<?php echo $_GET['variavel_2']; ?>'">

Como posso fazer o que necessito?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

11-10-2016 17:25

Vamos imaginar que seja enviado pelo link uma variável chamada valor. O window.location.href fica assim:

window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>?<? echo isset($_GET['valor1']) ? "valor1=".htmlspecialchars($_GET['valor1']) : ""; ?>&<? echo isset($_GET['valor2']) ? "valor2=".htmlspecialchars($_GET['valor2']) : ""; ?>';

O formulário para teste segue abaixo:

<form action="teste.php" method="GET"> <input type="text" name="valor1" value="abcd" /> <input type="text" name="valor2" value="1234" /> <input type="submit" name="submit" /> </form> <?php if(isset($_GET['valor1']) && isset($_GET['valor2'])) { echo "{$_GET['valor1']} e {$_GET['valor2']}"; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

11-10-2016 19:07

Eu criei outro arquivo (teste1.php), enviando o formulário para o arquivo que contém o código da captura da largura (teste2.php).

No arquivo teste2.php, fiz as alterações que você sugeriu, mas deixei um formulário enviando as variáveis de forma oculta através de GET para o próprio arquivo, mas sem o submit. É claro que não está correto, mas talvez seja parte do caminho.

O formulário que envia por POST (myform) tem uma função em JavaScript para submetê-lo.

O formulário GET, como deixei, não necessitaria de uma função igual?

Do jeito que está, quando se submete o formulário, logo quando é carregado arquivo teste2.php, aparecem, na barra de endereço do navegador, as variáveis recebidas do arquivo anterior, mas logo desparecem.

Os arquivos como deixei:

teste1.php:

<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" id="viewport" content="target-densitydpi=high-dpi,initial-scale=1.0,user-scalable=no" /> </head> <body> <form action="teste2.php" method="GET"> <input type="text" name="valor1" value="abcd" /> <input type="text" name="valor2" value="1234" /> <input type="submit" name="submit" /> </form> </body> </html>

teste2.php:

<?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?> <?php session_start(); $testhis = "no JavaScript"; if (isset($_POST['IsResponsive']) && !empty($_POST['IsResponsive'])) { $_SESSION['IsResponsive'] = $_POST['IsResponsive']; } if (isset($_SESSION['IsResponsive']) && !empty($_SESSION['IsResponsive'])) { $testhis = $_SESSION['IsResponsive'];}?> <?php echo $_GET['valor1']; echo "&nbsp;-&nbsp;"; echo "variável GET valor1"; echo "<br>"; echo $_GET['valor2']; echo "&nbsp;-&nbsp;"; echo "variável GET valor2"; echo "<br>"; ?> <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" id="viewport" content="target-densitydpi=high-dpi,initial-scale=1.0,user-scalable=no" /> <title>http://w3schools.invisionzone.com/index.php?showtopic=53354#entry293760</title> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> <script type="text/javascript"> <?php if (!isset($_SESSION['IsResponsive']) && !isset($_POST['IsResponsive']) || isset($_SESSION['IsResponsive']) !== isset($_POST['IsResponsive'])) { ?> function CheckScreenSize(){ var width = $(window).width(); //var height = $(window).height(); if (width > 0) { IsResponsive(width); // 'responsive' } } function IsResponsive(result) { $('#IsResponsive').val(result); $('#myform').submit(); } $(function() { CheckScreenSize(); }); <?php } ?> $(function() { $(window).resize(function() { window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>?<? echo isset($_GET['valor1']) ? "valor1=".htmlspecialchars($_GET['valor1']) : ""; ?>&<? echo isset($_GET['valor2']) ? "valor2=".htmlspecialchars($_GET['valor2']) : ""; ?>'; //window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>'; }); }); </script> <style type="text/css"> </style> </head> <body> <form id="myform" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"><input type="hidden" name="IsResponsive" id="IsResponsive"></form> <?php echo $testhis; ?> <form action="teste2.php" method="GET"> <input type="hidden" name="valor1" value="<?php echo $_GET['valor1']; ?>" /> <input type="hidden" name="valor2" value="<?php echo $_GET['valor2']; ?>" /> </form> <?php if(isset($_GET['valor1']) && isset($_GET['valor2'])) { echo "{$_GET['valor1']} e {$_GET['valor2']}"; } ?> </body> </html>

Será que não se tem de colocar os valores que vêm do arquivo anterior numa variável de sessão, como estão os valores de POST, por conta da variação da largura? Pois quando há a variação da largura me parece que há um refresh em razão do resize, e a variável de sessão não manteria tais valores?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 08:17

Esse método que coloquei tem que ser no mesmo arquivo. Porque quando o arquivo é carregado ou redimensionado logo executa o window.location.href.
Se for trabalhar com 2 arquivos vai ter que mudar o método.

Não sei se são esses valores:

echo "{$_GET['valor1']} e {$_GET['valor2']}";

que você quer colocar em SESSION. Mas, trabalhando com um único arquivo dá. É só criar a SESSION ai no if do POST e armazenar os valores enviados.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 09:43

Eu criei dois arquivos para mostrar que os valores trabalhados na variável $_GET vêm de um arquivo anterior, onde são selecionados, e são usados na consulta SQL no arquivo em se que captura a largura (e no qual não haverá um botão de submit, que terá de ser dado automaticamente a cada alteração de largura, como acontece com a exibição da largura).

Estou imaginando que deve ser preciso um código semelhante ao utilizado para se determinar a largura, para se enviar, para o próprio arquivo, o que está em $_GET:

Algo como:

function valores_get(result) { $('#valores_get').val(result); $('#form_valores_get').submit(); } window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>'; <form id="form_valores_get" method="GET" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> <input type="hidden" name="valor1" value="<?php echo $_GET['valor1']; ?>" /> <input type="hidden" name="valor2" value="<?php echo $_GET['valor2']; ?>" /></form>

.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 11:10

Dentro da função $(window).resize(function() { inseri o código abaixo. Manteve o que vem por $_GET da página anterior, mas parou de variar a largura ao se redimensionar a janela.

//var dadosFormulario = $("#formulario").serialize(); var valor1 = "<?php echo $_GET['valor1']; ?>"; var valor2 = "<?php echo $_GET['valor2']; ?>"; $.ajax({ type: "GET", url: "teste2.php", //url: "caminho/para/ficheiro.php", data: {valor1: valor1, valor2: valor2}, //data: dadosFormulario, success: function(resposta) { // variável "resposta" contém o que o servidor envia // aqui código a executar quando correu tudo bem }, error: function() { // correu mal, agir em conformidade } });

0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 11:19

O código do arquivo teste2.php está assim, por enquanto:

<?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?> <?php session_start(); $testhis = "no JavaScript"; if (isset($_POST['IsResponsive']) && !empty($_POST['IsResponsive'])) { $_SESSION['IsResponsive'] = $_POST['IsResponsive']; } if (isset($_SESSION['IsResponsive']) && !empty($_SESSION['IsResponsive'])) { $testhis = $_SESSION['IsResponsive'];}?> <?php echo $_GET['valor1']; echo "&nbsp;-&nbsp;"; echo "variável GET valor1"; echo "<br>"; echo $_GET['valor2']; echo "&nbsp;-&nbsp;"; echo "variável GET valor2"; echo "<br>"; ?> <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" id="viewport" content="target-densitydpi=high-dpi,initial-scale=1.0,user-scalable=no" /> <title>http://w3schools.invisionzone.com/index.php?showtopic=53354#entry293760</title> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> <script type="text/javascript"> <?php if (!isset($_SESSION['IsResponsive']) && !isset($_POST['IsResponsive']) || isset($_SESSION['IsResponsive']) !== isset($_POST['IsResponsive'])) { ?> function CheckScreenSize(){ var width = $(window).width(); //var height = $(window).height(); if (width > 0) { IsResponsive(width); // 'responsive' } } function IsResponsive(result) { $('#IsResponsive').val(result); $('#myform').submit(); } $(function() { CheckScreenSize(); }); <?php } ?> $(function() { $(window).resize(function() { window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>?<? echo isset($_GET['valor1']) ? "valor1=".htmlspecialchars($_GET['valor1']) : ""; ?>&<? echo isset($_GET['valor2']) ? "valor2=".htmlspecialchars($_GET['valor2']) : ""; ?>'; //window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>'; //var dadosFormulario = $("#formulario").serialize(); var valor1 = "<?php echo $_GET['valor1']; ?>"; var valor2 = "<?php echo $_GET['valor2']; ?>"; $.ajax({ type: "GET", url: "teste_2_2.php", //url: "caminho/para/ficheiro.php", data: {valor1: valor1, valor2: valor2}, //data: dadosFormulario, success: function(resposta) { // variável "resposta" contém o que o servidor envia // aqui código a executar quando correu tudo bem }, error: function() { erro ajax. // correu mal, agir em conformidade } }); }); }); </script> <style type="text/css"> </style> </head> <body> <form id="myform" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"><input type="hidden" name="IsResponsive" id="IsResponsive"></form> <?php echo $testhis; ?> <form action="teste2.php" method="GET"> <input type="hidden" name="valor1" value="<?php echo $_GET['valor1']; ?>" /> <input type="hidden" name="valor2" value="<?php echo $_GET['valor2']; ?>" /> </form> <?php if(isset($_GET['valor1']) && isset($_GET['valor2'])) { echo "{$_GET['valor1']} e {$_GET['valor2']}"; } ?> </body> </html>

Está mostrando isto na barra de endereço: http://localhost/site/teste2.php?valor1 ... viar+dados.

E exibe isto na tela:

abcd - variável GET valor1
1234 - variável GET valor2

1366

abcd e 1234


Mas, como eu disse, ao se ajustar a largura do navegador, a exibição da largura fica estática.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 16:14

Eu montei um modelo que envia os dados do formulário e da largura para mesma página. Testa ai

<?php session_start(); $testhis = "no JavaScript"; if (isset($_POST['IsResponsive']) && !empty($_POST['IsResponsive'])) { $_SESSION['IsResponsive'] = $_POST['IsResponsive']; } if (isset($_SESSION['IsResponsive']) && !empty($_SESSION['IsResponsive'])) { $testhis = $_SESSION['IsResponsive'];} ////////////////////////////////////////// SESSIONS // ARMAZENANDO A LARGURA NA SESSION $_SESSION['largura'] = $testhis; // ARMAZENANDO O VALOR1 isset($_GET['valor1'])!="" ? $_SESSION['valor1'] = $_GET['valor1'] : ""; // ARMAZENANDO O VALOR2 isset($_GET['valor2'])!="" ? $_SESSION['valor2'] = $_GET['valor2'] : ""; ////////////////////////////////////////// SESSIONS ?> <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" id="viewport" content="target-densitydpi=high-dpi,initial-scale=1.0,user-scalable=no" /> <title>http://w3schools.invisionzone.com/index.php?showtopic=53354#entry293760</title> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> <script type="text/javascript"> <?php if (!isset($_SESSION['IsResponsive']) && !isset($_POST['IsResponsive']) || isset($_SESSION['IsResponsive']) !== isset($_POST['IsResponsive'])) { ?> function CheckScreenSize(){ var width = $(window).width(); var height = $(window).height(); if (width > 0) { IsResponsive(width); } } function IsResponsive(result) { $('#IsResponsive').val(result); $('#myform').submit(); } $(function() { CheckScreenSize(); }); <?php } ?> $(function() { $(window).resize(function() { window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>'; }); }); </script> <style type="text/css"> </style> </head> <body> <form id="myform" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"><input type="hidden" name="IsResponsive" id="IsResponsive"></form> <form action="teste.php" method="GET"> <input type="text" name="largura" value="<?php echo $_SESSION['largura']; ?>" /> <input type="text" name="valor1" value="<?php echo isset($_SESSION['valor1'])!="" ? $_SESSION['valor1'] : ""; ?>" /> <input type="text" name="valor2" value="<?php echo isset($_SESSION['valor2'])!="" ? $_SESSION['valor2'] : ""; ?>" /> <input type="submit" name="submit" /> </form> </body> </html>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 18:28

Dentro do campo de formulário funciona perfeitamente o código que você montou.

Mas eu preciso conseguir trabalhar com as variáveis $_GET cujos valores vêm do arquivo anterior, onde são selecionados esses valores. Por isso que o submit no mesmo arquivo não é apropriado. E, após virem do arquivo anterior, quando houver a variação da largura em razão da função $(window).resize(function() {, é necessário que sejam enviados tais valores dentro do arquivo, como acontece com a função function IsResponsive(result) { em relação ao formulário myform.

No último código de teste que postei, consegui parcialmente isso com AJAX, mas a exibição da largura trava, não mais varia conforme a variação da largura da janela da função $(window).resize(function() {.

Vou continuar pesquisando e tentando. Obrigado pela força.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 18:47

Mas esse código que postei ele trabalha com o GET. Não importando se vem do formulário no mesmo documento ou de fora, através da URL.

// ARMAZENANDO O VALOR1 isset($_GET['valor1'])!="" ? $_SESSION['valor1'] = $_GET['valor1'] : ""; // ARMAZENANDO O VALOR2 isset($_GET['valor2'])!="" ? $_SESSION['valor2'] = $_GET['valor2'] : ""; ////////////////////////////////////////// SESSIONS

Como mostrado acima se vier setado o valor é armazenado em uma SESSION.

No exemplo que postei esse valor enviado pelo link fica armazenado na SESSION, e é exibido dentro dos inputs no formulário.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 19:34

Mas não consegui fazer funcionar da forma que pretendo. Os valores recebidos por $_GET, assim como a largura, deixaram de ser exibidos na barra de endereços e passaram a se perder.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

12-10-2016 20:44

Se você usar do método que postei, salvando os dados da SESSION os dados não se perdem, mesmo dando refresh ou redimensionando.
Já mostrar os dados na barra de endereço não dá por causa da função resize, que faz um reload.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 10:14

Mas não estou sabendo usar o código que você montou usando o formulário com botão submit, não vindo os valores recebidos por $_GET do arquivo anterior. Vou tentar novamente.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 10:23

Os valores são enviados por GET. Mas foi como falei, esse método de script não mostra os dados no link.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 10:33

Você tem razão. Fiz o teste com código abaixo, e o conteúdo de $_GET recebido do arquivo anterior se mantém:

<?php if (isset($_GET['valor1']) && !empty($_GET['valor1'])) { $_SESSION['valor1'] = $_GET['valor1']; } if (isset($_GET['valor2']) && !empty($_GET['valor2'])) { $_SESSION['valor2'] = $_GET['valor2']; } echo $_SESSION['valor1']; echo "&nbsp;-&nbsp;"; echo "variável SESSION valor1"; echo "<br>"; echo $_SESSION['valor2']; echo "&nbsp;-&nbsp;"; echo "variável SESSION valor2"; echo "<br>"; echo $_GET['valor1']; echo "&nbsp;-&nbsp;"; echo "variável GET valor1"; echo "<br>"; echo $_GET['valor2']; echo "&nbsp;-&nbsp;"; echo "variável GET valor2"; echo "<br>"; ?>

Mas não estou sabendo usar seu código. Vou tentar isso de colocar os valores que vêm do arquivo anterior em $_SESSION e tentar usar na consulta SQL de meu código.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 11:57

Eu estou adaptando o código deste tópico para o meu código de desenvolvimento. Estou usando na consulta SQL os valores que vêm do arquivo anterior armazenados em S_SESSION.

A consulta é feita normalmente.

Mas a paginação não está funcionando. E, além disso, somente pelo navegador do celular (pelo navegador do computador isso não acontece), fica dando refresh toda hora. Esse problema da paginação e do refresh desenfreado podem ter a ver com a sessão aberta?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 13:25

A paginação você teria que ver como funciona para tentar adaptar toda a esse esquema de SESSION.
É possível que alguns navegadores de celular não aceitem SESSION ou não interpretem corretamente.

Existe alguns modelos de paginação com jQuery e MySQL. http://www.jqueryrain.com/2012/04/best- ... mple-demo/

Nesse link acima acho que o exemplo 7 faz isso.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 14:03

Vou verificar a paginação em face da SESSION e verificar a paginação que você indicou. Obrigado. Mas gostaria de tentar preservar a minha. Vou tentar identificar o problema e tentar corrigir nela mesma. Se não conseguir, usarei a paginação do link que você sugeriu.

Tenho pesquisado, e o refresh (ou reload - seriam a mesma coisa?) automático pode não ter a ver com SESSION. Encontrei uma situação semelhante à minha, em que não há o refresh automático pelo computador, mas há pelo celular (traduzi pelo Google): http://stackoverflow.com/questions/7828 ... to-refresh. Estou procurando funções em jQuery ou JavaScript puro para tentar contornar isso.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 15:24

Cara, coitados dos coelhinhos, mas matei dois com uma só cajadada. Consegui resolver o problema do refresh automático pelos navegadores do celular (testei, para Android, no Firefox, Chrome e Opera; e preciso encontrar quem tenha iPhone para testar no IOS). O problema da paginação me parece que também era por conta do refresh automático.

Usei o código abaixo, que encontrei neste link: https://gist.github.com/mgibbs189/e0ebc ... tfile1-txt.

Eis o código:
<script> (function($) { $(function() { FWP.auto_refresh = false; FWP.loading_handler = function(params) {} }); })(jQuery); <script>

Vou continuar testando para ver se esse código não comprometeu outras coisas, mas fiquei contente.

Veja a situação: não há uniformidade entre navegadores para computadores. Agora, nos deparamos com diferença de comportamento do código entre navegadores da mesma origem, mas para dispositivos diferentes. Ruim, né?

Muito obrigado pela força que você tem me dado.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 15:31

Então. Veste-se um santo e se desveste outro. O código que encontrei impede o auto refresh, mas, fazendo isso, o carregamento do código para exibir a largura não funciona. Você teria alguma luz para se resolver isso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 16:02

Como está seu último código?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 16:07

Já posto. Vou pegar o que coloquei no meu código de desenvolvimento.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1309
Sexo: Masculino

Re: Capturar largura em jQuery e informá-la em variável PHP usando $_SESSION e $_POST

13-10-2016 16:32

Arquivo teste1.php

<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" id="viewport" content="target-densitydpi=high-dpi,initial-scale=1.0,user-scalable=no" /> </head> <body> <form action="teste2.php" method="GET"> <input type="text" name="valor1" value="abcd" /> <input type="text" name="valor2" value="1234" /> <input type="submit" name="submit" /> </form> </body> </html>

Arquivo teste2.php:

<?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?> <?php session_start(); $testhis = "no JavaScript"; if (isset($_POST['IsResponsive']) && !empty($_POST['IsResponsive'])) { $_SESSION['IsResponsive'] = $_POST['IsResponsive']; } if (isset($_SESSION['IsResponsive']) && !empty($_SESSION['IsResponsive'])) { $testhis = $_SESSION['IsResponsive']; } echo $_POST['IsResponsive']; echo "&nbsp;-&nbsp;"; echo "variável POST IsResponsive"; echo "<br>"; echo $_SESSION['IsResponsive']; echo "&nbsp;-&nbsp;"; echo "variável SESSION IsResponsive"; echo "<br>"; echo $testhis; echo "&nbsp;-&nbsp;"; echo "variável testhis"; echo "<br>"; ?> <!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 name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> <script type="text/javascript" language="javascript"> /* (function($) { $(function() { FWP.auto_refresh = false; FWP.loading_handler = function(params) {} }); })(jQuery); */ </script> <script type="text/javascript"> <?php if (!isset($_SESSION['IsResponsive']) && !isset($_POST['IsResponsive']) || isset($_SESSION['IsResponsive']) !== isset($_POST['IsResponsive'])) { ?> function CheckScreenSize(){ var width = $(window).width(); if (width > 0) { IsResponsive(width); // 'responsive' } } function IsResponsive(result) { $('#IsResponsive').val(result); $('#myform').submit(); } $(function() { CheckScreenSize(); }); <?php } ?> $(function() { $(window).resize(function() { window.location.href = '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>'; }); }); </script> </head> <body> <?php if (isset($_GET['valor1']) && !empty($_GET['valor1'])) { $_SESSION['valor1'] = $_GET['valor1']; } if (isset($_GET['valor2']) && !empty($_GET['valor2'])) { $_SESSION['valor2'] = $_GET['valor2']; } echo $_SESSION['valor1']; echo "&nbsp;-&nbsp;"; echo "variável SESSION valor1"; echo "<br>"; echo $_SESSION['valor2']; echo "&nbsp;-&nbsp;"; echo "variável SESSION valor2"; echo "<br>"; ?> <form id="myform" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"><input type="hidden" name="IsResponsive" id="IsResponsive"></form> <?php echo $testhis; ?> </body> </html>

O código que impede o refresh automático, informado abaixo, está comentado no arquivo teste2.php. Assim, a largura é exibida. Se descomentá-lo, a largura não mais será exibida, e o auto refresh continuará. Como eu disse: isto está acontecendo nos navegadores do celular. Mas se descomento o código que evita o auto refresh, a largura não é exibida também nos navegadores para computador. Andei lendo sobre setTimeout() e setInterval(), não sei se tem a ver, mas também não sei implementar.

<script type="text/javascript" language="javascript"> (function($) { $(function() { FWP.auto_refresh = false; FWP.loading_handler = function(params) {} }); })(jQuery); </script>

0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado