Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGEM DE PROGRAMAÇÃO WEB GABRIELA TREVISAN Aula 4 Imagine a seguinte situação: ◦ Precisamos trafegar valores de uma página PHP para outra, porém não temos formulários entre essas páginas. Como fazer isso? A resposta é simples, podemos utilizar o header(location:) para redirecionar para outra página passando valores via $_GET[]. Header(location:) O comando header permite redirecionar uma página para outra página, como por exemplo: header('location:http://www.terra.com.br'); Nesse exemplo o header está redirecionando para o site do terra. Vamos fazer isso no nosso código! Header (location:) Vamos imaginar que estamos na página Pessoa e desejamos exibir os dados recebidos da Pessoa em uma página chamada Resposta. Nos exemplos anteriores estávamos imprimindo diretamente da classe Pessoa, o que é errado. A classe Pessoa não pode ter interação com o usuário. Então vamos redirecionar via header(location:url) enviando variáveis via GET para a página de destino, no caso a Resposta. Header (location:) Para enviar uma variável via $_GET[] utilizamos após a URL o sinal de interrogação “?” seguido do nome da variável e o seu valor, como por exemplo: header("location:resposta.php?nome=$nome"); Vamos verificar somente o código em negrito: ?nome=$nome Header (Location) A interrogação indica que vamos passar valores via $_GET[]. Após a interrogação temos o nome da variável, no caso o nome da variável é “nome”. O sinal de igual “=” serve para informar qual valor será atribuido a variável “nome”, no caso é um valor vindo de um atributo do objeto aluno. ATENÇÃO: Note que tudo entre os parênteses do comando header estão entre “aspas”, isso devido ao fato que o conteúdo deve ser interpretado pelo PHP, pois temos objetos e atributos. Passando 2 valores Podemos passar mais de um valor via $_GET[] na URL. Mas como fazer isso? Para passar 2 ou mais valores basta separar através de “E comercial” &, como por exemplo: header("location:resposta.php?nome=$nome&idade=$idade"); Neste caso estamos passando duas variáveis, são elas: nome e idade. Vamos passar 3 variáveis, como por exemplo: header("location:resposta.php?nome=$idade=$ idade&media=$media"); Passando 3 valores Neste caso estamos passando as variáveis: nome, idade. O código do controle fica: include 'pessoa.class.php'; //Recebendo valores através do array $_POST[] $nome = $_POST['txtnome']; $idade = $_POST['txtidade']; $pessoa = new Pessoa($nome,$idade); Passando 2 valores Passando 2 valores //Antes estávamos imprimindo direto da classe Controle. ERRADO!!! //echo $pessoa; //Agora vamos direcionar para a página Resposta.php passando variáveis através da URL utilizando o array GET. header("location:resposta.php?nome=$nome&idade=$idade"); ?> Resgatando valores na Resposta.php Para buscar os valores na outra página necessitamos que a mesma tenha a extensão *.php, caso contrário não funcionará. A página de resposta geralmente terá código html. O código html pode ser simples, porém dentro da tag body vamos abrir um script em PHP e vamos resgatar os valores através do $_GET[]; Resgatando valores na resposta.php <body> <h1>Dados informados</h1> <?php echo '<p>nome: '.$_GET['nome']. ‘<br />idade: '.$_GET['idade'].'</p>'; ?> </body> Visualizando as variáveis na URL Métodos mágicos do PHP Os métodos mágicos servem para nos auxiliar na programação. Todos os métodos mágicos tem uma característica em comum, eles iniciam com dois underlines antes do nome, como por exemplo: __construct(). Não devemos colocar nome de método precedido de dois underlines Métodos mágicos do PHP __construct() __destruct() __get() __set() __toString() Utilização Vamos supor uma classe Pessoa onde tenhamos três atributos, são eles: nome, sexo e idade. No construtor mágico passaremos somente nome e sexo. Mas porque isso? Passando só 2 atributos para o terceiro possa ser enviado via setMágico. Assim você entenderá como passar por construtor ou através do set mágico. Programando... <?php class Pessoa{ private $nome; private $idade; //construtor public function __construct($nome){ $this->nome = $nome; } Programando... public function __get($atributo){ return $this->$atributo; } public function __set($atributo, $valor){ $this->$atributo = $valor; } public function __toString(){ return '<p>nome: '.$this->nome. '<br />idade: '.$this->idade.'</p>'; } } ?> Programando... Agora vamos supor a classe ControlePessoa.php onde instanciaremos um objeto da classe Pessoa. <?php include 'Pessoa.class.php'; //Recebendo valores através do array $_POST[] $nome = $_POST['txtnome']; $idade = $_POST['txtidade']; Programando... //Passando nome e sexo através do construtor. $pessoa = new Pessoa($nome); //Passando a variável idade através do set mágico. $pessoa->idade = $idade; Programando... /* Imprimindo todos atributos da classe Pessoa através do toString. Para chamar o método toString basta solicitar a impressão do objeto conforme exemplo: */ echo $pessoa;/* 2ª maneira: imprimindo via get Mágico. echo '<p>nome: '.$pessoa->nome. '<br />idade: '.$pessoa->idade.'</p>'; */ ?> Exemplo de Telas CADASTRO Tipo de Função: Valor total de vendas do Mês: Nome: Salário Bruto: Vale Transporte: Sim ou Não Vale Refeição:Sim ou Não Auxílio Creche: Sim ou Não RELATÓRIO Função: Gerente Valor de Vendas: R$ 500000,00 Nome: João Souza Salário Bruto: R$ 15000,00 Vale Transporte:Não Vale Refeição: Sim Auxílio Creche: Sim Total de Proventos: R$ Total de Descontos: R$ Salário Líquido: R$
Compartilhar