Método GET

O método GET cria um array de chaves e valores (exemplo, chave1=>valor1, chave2=>valor2, ..., chaven=>valorn), em que as chaves correspondem aos nomes dos controles dos formulários e os valores correspondem aos dados de entradas fornecidos pelo usuário.

O atributo method define o método de envio dos dados do formulário, conforme exemplificação a seguir:

<html>
<body>
    <form name="form1" method="GET">
        <input name="textNome" type="text">
        <input name="btnEnviar" type="submit" value="Enviar">
    </form>
</body>
</html>

Uma vez que o usuário informar algum valor no campo de texto do formulário e clicar no botão Enviar, um array de chave=>valor será criado e passado via URL. Este array é também chamado de Query String.

Supondo que o usuário digite John no campo de texto e clique no botão Enviar, o seguinte array será criado e enviado pela URL: ?textNome=John&btnEnviar=Enviar. O caracter ? separa a URL base do array com os valores. Cada par chave=>valor é separado pelo caráter &. Por exemplo, se página carregada fosse index.php, e estivesse dentro da pasta exemplo, então a URL base poderia ser http://localhost/exemplo/index.php .

Acessando os dados do formulário em PHP

Quando os valores são enviados via método GET, automaticamente é criada um array chamado $_GET que contém todos os valores passados para o corrente script via URL. O array definido em $_GET é global para o script corrente e pode ser acessado a qualquer momento, independente do escopo (e.g. em uma função ou em uma classe), sem necessidade de nenhum tratamento especial.

Vamos usar o código HTML definido anteriormente para acrescentar um script PHP que acessa os dados enviados via método GET e mostra-los no browser.

<html>
<body>
    <?php
        if (isset($_GET["textNome"])){
            $nome = $_GET["textNome"];
            echo "Nome: ".$nome;
        }
    ?>
    <form name="form1" method="GET">
        <input name="textNome" type="text">
        <input name="btnEnviar" type="submit" value="Enviar">
    </form>
</body>
</html>

Na primeira vez que a página acima for carregada, um erro PHP será gerado porque o array $_GET e seus valores ainda não existem. Uma vez que o formulário for preenchido pelo usuário e o botão Enviar for acionado, o array será criado, os dados serão mostrados no browser e os erros deixarão de existir.

Para resolvermos o problema do erro gerado no primeiro acesso, pode ser realizada uma verificação com o intuito de identificarmos se os valores de $_GET não estão nulos, conforme código mostrado a seguir:

<?php
    if (isset($_GET["textNome"])){
        $nome = $_GET["textNome"];
        echo "Nome: ".$nome;
    }
?>

No código mostrado anteriormente foi realizada uma verificação com o auxílio da função isset para identificarmos se a chave textNome existe. Mais informações sobre a função isset estão disponíveis no capítulo de Funções.

As exemplificações mostradas anteriormente sempre enviam os dados para a página PHP corrente. Caso necessite enviar os dados para outra página (outro script PHP), pode ser utilizado o atributo action do formulário. Assim, deve ser atribuído ao atributo action o nome da página destino, por exemplo, action="pagina_destino.php" . A seguir você pode fazer download de um projeto PHP que mostra a utilização do envio de dados para uma página diferente utilizado um formlário com método GET.

DICA IMPORTANTE: Caso necessite enviar parâmetros via URL é possível criar esse array manualmente e colocá-lo como parte do endereço. Assim, os dados também podem ser enviados via GET diretamente pela URL.

<a href="mostrar-dados.php?Cod=2&Nome='John'"> Passando CÓDIGO e NOME via link </a>

O código mostrado acima cria um link em HTML definindo o array de parâmetros que serão enviados para a página mostrar-dados.php. O projeto completo para que você possa testar está disponível para download aqui.

results matching ""

    No results matching ""