Angular Aula03 CRUD
Angular Aula03 CRUD
Angular Aula03 CRUD
Instalação do XAMPP
Faça o download no site:
https://www.apachefriends.org/index.html
Faça a instalação do arquivo baixado.
Após a instalação, execute o XAMPP e inicialize (start) os serviços
Apache (PHP) e MySQL.
Novo Projeto - CRUD
Executando o Projeto
ng g c usuarios
Continua...
Novo Projeto - CRUD
Novo Projeto - CRUD
Preparando o html para mostrar usuários (usando Bootstrap):
1. Altere o arquivo usuarios.componente.html para:
<div class="container mt-4">
<span class="titulo">API de Usuários</span>
<hr class="mb-4">
<div class="row">
<div class="col-lg-8 col-md-6 col-sm-12">
<button class="btn btn-success ml-2" data-toggle="modal" data-target="#modal">Adicionar</button>
<br><br>
</div>
<div class="col-lg-4 col-md-6 col-sm-12">
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search"
(input)="carregar($event.target.value)"
(change)="this.textoBuscar = $event.target.value"
placeholder="Pesquisar" aria-label="Pesquisar">
<a (click)="carregar(this.textoBuscar)" class="btn btn-outline-info my-2 my-sm-0" ><i class="fas fa-
search"></i></a>
</form>
</div>
</div>
Continua...
Novo Projeto - CRUD
<td>{{dado.nome}}</td>
<td>{{dado.usuario}}</td>
<td>{{dado.senha}}</td>
<td>
<a (click)="dadosEditar(dado.nome, dado.usuario, dado.senha, dado.id)" data-toggle="modal" data-
target="#modal" title="Editar Registro"><i class="far fa-edit text-info mr-2"></i></a>
<a (click)="excluir(dado.id)" title="Excluir Registro"><i class="far fa-trash-alt text-danger"></i></a>
</td>
</tr>
</table>
</div>
Continua...
Novo Projeto - CRUD
Testando
http://localhost:4200/usuarios
Observe que a renderização já foi feita, mas os dados ainda não foram
mostrados. Além disso o bootstrap não está sendo mostrado. Portanto, temos
que aplicar o bootstrap ao projeto.
Novo Projeto - CRUD
Aplicando o bootstrap
Testando
http://localhost:4200/usuarios
Testando novamente
http://localhost:4200/usuarios
include_once('conexao.php');
if($postjson['requisicao'] == 'listar'){
if($postjson['textoBuscar'] == ''){
$query = $pdo->query("SELECT * from usuarios order by id desc limit $postjson[start], $postjson[limit]");
}else{
$busca = $postjson['textoBuscar'] . '%';
$query = $pdo->query("SELECT * from usuarios where nome LIKE '$busca' or usuario LIKE '$busca' order by id desc
limit $postjson[start], $postjson[limit]");
} Continua ...
Novo Projeto - CRUD
$res = $query->fetchAll(PDO::FETCH_ASSOC);
if($query){
$result = json_encode(array('success'=>true, 'result'=>$dados));
}else{
$result = json_encode(array('success'=>false));
}
echo $result;
}
?>
Novo Projeto - CRUD
http://localhost:4200/usuarios
Agora os usuários
foram listados
corretamente.
Digite as iniciais de
um nome de usuário
e observe que a
busca já está
funcionando.
Novo Projeto - CRUD
Criando uma janela modal para inserir e editar registro
<div class="modal-body">
<div class="form-group">
<label for="exampleInputEmail1">Nome</label>
<input type="text" class="form-control"
(input)="this.nome = $event.target.value" aria-describedby="emailHelp"
value="{{nome}}" placeholder="Seu nome" required />
</div>
Continua ...
Novo Projeto - CRUD
<div class="form-group">
<label for="exampleInputEmail1">Email</label>
<input type="email" class="form-control" (input)="this.usuario = $event.target.value"
value="{{usuario}}"
aria-describedby="emailHelp" placeholder="Seu email" required />
</div>
<div class="form-group">
<label for="exampleInputPassword1">Senha</label>
<input type="text" class="form-control" (input)="this.senha = $event.target.value"
value="{{senha}}"
placeholder="Senha" required />
</div>
</div>
<div class="modal-footer">
<button *ngIf="id === '' " type="button" class="btn btn-primary" (click)="cadastrar()">Salvar</button>
</div>
</div>
</div>
</div>
Novo Projeto - CRUD
Ao clicar em
Adicionar e Editar, a
janela modal é
aberta, mas as
funcionalidades
ainda não estão
funcionando.
Novo Projeto - CRUD
Criando a função para cadastrar usuários
1. Abra o arquivo usuarios.component.ts e após a função carregar, digite
o código da função cadastrar:
cadastrar() {
if(this.nome !== '' && this.usuario !== '' && this.senha !== '') {
return new Promise(resolve => {
const dados = {
requisicao : 'add',
nome: this.nome,
usuario: this.usuario,
senha: this.senha
};
this.provider.Api(dados, 'apiUsuarios.php').subscribe(data => {
if(data['success']){
alert('Salvo com sucesso!');
window.location.reload();
} else {
alert('Erro ao salvar!');
}
});
});
} else {
alert('Preencha os campos!');
}
}
Novo Projeto - CRUD
$id = $pdo->lastInsertId();
if($query) {
$result = json_encode(array('success'=>true, 'id'=>$id));
} else {
$result = json_encode(array('success'=>false));
}
echo $result;
}
Novo Projeto - CRUD
Verifique se o novo
usuário cadastrado
aparece na lista.
Novo Projeto - CRUD
if($query) {
$result = json_encode(array('success'=>true, 'id'=>$id));
} else {
$result = json_encode(array('success'=>false));
}
echo $result;
}
Novo Projeto - CRUD
}
Novo Projeto - CRUD
if($query){
$result = json_encode(array('success'=>true));
}else{
$result = json_encode(array('success'=>false));
}
echo $result;
}
Novo Projeto - CRUD
Templates em Bootstrap
No site bootsnipp você pode encontrar diversos templates para Bootstrap para
suas aplicações. Abra uma nova aba em seu navegador e entre em:
http://bootsnipp.com/tags
Templates em Bootstrap
Role a tela e veja os diversos templates que podem ser utilizados para sua tela
de login.
Você poderia utilizar qualquer um, mas vamos utilizar o template abaixo
(sugerimos que use o mesmo). Clique sobre ele.
Novo Projeto - CRUD
Templates em Bootstrap
Vamos retornar ao
Visual Code que
depois utilizaremos
os códigos CSS e
HTML.
Novo Projeto - CRUD
<body>
<div id="login">
<h3 class="text-center text-white pt-5">Login form</h3>
<div class="container">
<div id="login-row" class="row justify-content-center align-items-center">
<div id="login-column" class="col-md-6">
<div id="login-box" class="col-md-12">
<form id="login-form" class="form" action="" method="post">
<h3 class="text-center text-info">Login</h3>
<div class="form-group">
<label for="username" class="text-info">Username:</label><br>
<input type="text" name="username" id="username" class="form-control">
</div>
<div class="form-group">
<label for="password" class="text-info">Password:</label><br>
<input type="text" name="password" id="password" class="form-control">
</div>
Continua...
Novo Projeto - CRUD
Continuando...
<div class="form-group">
<label for="remember-me" class="text-
info"><span>Remember me</span> <span><input id="remember-me" name="remember-
me" type="checkbox"></span></label><br>
<input type="submit" name="submit" class="btn btn-info btn-md" value="submit">
</div>
<div id="register-link" class="text-right">
<a href="#" class="text-info">Register here</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
Novo Projeto - CRUD
http://localhost:4200/login
Novo Projeto - CRUD
Traduzindo/ajustando a tela:
Traduzindo/ajustando a tela:
http://localhost:4200/login