Bento Evaldo Junior - Desenvolvimento web com PHP e MySQL стр 13.

Шрифт
Фон

neste arquivo é o uso da instrução include, que serve para incluir o conteúdo

de outro arquivo no fluxo atual. O legal do include é que ele adiciona o outro

arquivo e todas as variáveis e funções do arquivo atual continuam valendo no arquivo

incluído, por isso podemos, neste caso, incluir um arquivo com apenas o template

do formulário de cadastro de tarefas e a lista de tarefas e ainda podemos continuar

usando a variável $lista_tarefas que foi definida no arquivo tarefas.php e

que contém um array com as tarefas cadastradas.

O arquivo com o template deve se chamar template.php pois este é o arquivo

que estamos incluindo usando o include no arquivo tarefas.php. Veja como

fica o arquivo template.php:

44

Casa do Código

Capítulo 5. Tratamento de diferentes campos de formulários

<html>

<head>

<meta charset="utf-8" />

<title>Gerenciador de Tarefas</title>

<link rel="stylesheet" href="tarefas.css" type="text/css" />

</head>

<body>

<h1>Gerenciador de Tarefas</h1>

<form>

<fieldset>

<legend>Nova tarefa</legend>

<label>

Tarefa:

<input type="text" name="nome" />

</label>

<input type="submit" value="Cadastrar" />

</fieldset>

</form>

<table>

<tr>

<th>Tarefas</th>

</tr>

<?php foreach ($lista_tarefas as $tarefa) : ?>

<tr>

<td><?php echo $tarefa; ?> </td>

</tr>

<?php endforeach; ?>

</table>

</body>

</html>

Agora temos apenas

o foreach que é um código PHP, o restante é apenas

HTML. Agora fica mais simples de para adicionar e alterar as funcionalidades, pois

os arquivos estão menores e, o que é mais importante, estão com suas responsabili-

dades separadas.

45

5.2. Adicionando mais informações às tarefas

Casa do Código

Devo separar meus projetos em vários arquivos sem-

pre?

Esta é uma pergunta difícil e a resposta é um pouco vaga: Depende.

Tudo depende do tamanho que sua aplicação terá e do quanto você

julgar que vale a pena investir um tempo separando os as responsabilida-

des entre os arquivos. No geral, vale bastante a pena fazer esta separação.

Veja que no nosso caso o programa ainda está bem pequeno e mesmo

assim a separação de arquivos já melhorou bastante no entendimento das

partes.

No geral não estamos perdendo tempo quando paramos para organi-

zar melhor um projeto. Esse tempo investido agora pode se tornar uma

grande economia de tempo nas futuras manutenções do código.

5.2

Adicionando mais informações às tarefas

Para que nosso sistema de controle de tarefas fique mais prático, vamos adicionar

algumas informações para melhor descrever e organizar as tarefas.

Por enquanto já temos um título para a tarefa, agora vamos adicionar uma des-

crição, um prazo para conclusão, um nível de prioridade e uma confirmação de que

a tarefa já está concluída. Para isso, vamos adicionar os novos campos no formulário

HTML:

...

<label>

Descrição (Opcional):

<textarea name="descricao"></textarea>

</label>

<label>

Prazo (Opcional):

<input type="text" name="prazo" />

</label>

<fieldset>

<legend>Prioridade:</legend>

<label>

<input type="radio" name="prioridade" value="baixa" checked /> 46

Casa do Código

Capítulo 5. Tratamento de diferentes campos de formulários

Baixa

<input type="radio" name="prioridade" value="media" />

Média

<input type="radio" name="prioridade" value="alta" />

Alta

</label>

</fieldset>

<label>

Tarefa concluída:

<input type="checkbox" name="concluida" value="sim" />

</label>

<input type="submit" value="Cadastrar" />

...

Se você usar o CSS dos exemplos, seu formulário deverá ficar parecido com este:

Figura 5.1: Formulário completo para o cadastro de tarefas

47

5.2. Adicionando mais informações às tarefas

Casa do Código

O legal é que só precisamos alterar o arquivo template.php, enquanto o

tarefas.php continuou o mesmo. O sistema continua funcionando e apenas ig-

nora os dados adicionais enviados.

Agora vamos alterar também o tarefas.php para pegar as novas informações.

Vamos usar o campo com o nome da tarefa como a base para saber se devemos

cadastrar uma nova tarefa, já que o nome da tarefa é a única informação essencial

para nós.

Para isso, vamos alterar aquele if logo após o session_start() e também

seu conteúdo. É claro que ele vai ficar maior, pois agora são vários campos que pre-

cisamos pegar do formulário enviado:

<?php

session_start();

if (isset($_GET['nome']) && $_GET['nome'] != '') {

$tarefa = array();

$tarefa['nome'] = $_GET['nome'];

if (isset($_GET['descricao'])) {

$tarefa['descricao'] = $_GET['descricao'];

} else {

$tarefa['descricao'] = '';

}

if (isset($_GET['prazo'])) {

$tarefa['prazo'] = $_GET['prazo'];

} else {

$tarefa['prazo'] = '';

}

$tarefa['prioridade'] = $_GET['prioridade'];

if (isset($_GET['concluida'])) {

$tarefa['concluida'] = $_GET['concluida'];

} else {

$tarefa['concluida'] = '';

}

48

Casa do Código

Capítulo 5. Tratamento de diferentes campos de formulários

$_SESSION['lista_tarefas'][] = $tarefa;

}

...

Repare que usamos sempre a função isset() para saber se os índices de $_GET

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке