MVC Completo - #19 Model V (Atualizar)
27/04/2018Hoje vamos finalizar a parte de Model com a atualização de dados no banco de dados do nosso sistema MVC.
Update de dados no MVC
No nosso ControllerCadastro vamos criar 2 métodos, o método puxaDB() que vai trazer os dados do banco de dados e colocá-los nos inputs e o método atualiza() que de posse dos novos dados vai fazer a atualização no DB.
#Puxando dados do DB
public function puxaDB($Id)
{
$this->recVariaveis();
$B=$this->selecionaClientes($this->Nome, $this->Sexo,$this->Cidade);
foreach($B as $C){
if($C['Id'] == $Id){
$Nome=$C['Nome'];
$Sexo=$C['Sexo'];
$Cidade=$C['Cidade'];
}
}
echo "
<form name='FormAtualizar' id='FormAtualizar' action='".DIRPAGE."cadastro/atualizar' method='post'>
<input type='hidden' name='Id' id='Id' value='$Id'><br>
Nome: <input type='text' name='Nome' id='Nome' value='$Nome'><br>
Sexo:
<select name='Sexo' id='Sexo'>
<option value='$Sexo'>$Sexo</option>
<option value='Masculino'>Masculino</option>
<option value='Feminino'>Feminino</option>
</select><br>
Cidade: <input type='text' name='Cidade' id='Cidade' value='$Cidade'><br>
<input type='submit' value='Atualizar'>
</form>
";
}
#Atualizar dados dos clientes
public function atualizar()
{
$this->recVariaveis();
$this->atualizarClientes($this->Id, $this->Nome,$this->Sexo,$this->Cidade);
echo "Usuário Atualizado com Sucesso!";
}
No nosso model: ClassCadastro vamos criar o método atualizarClientes() e vamos fazer uma query update no nosso banco onde a id clicada pelo usuário terá seus dados atualizados.
#Atualização direto no DB
protected function atualizarClientes($Id, $Nome , $Sexo , $Cidade){
$BFetch=$this->Db=$this->conexaoDB()->prepare("update teste set Nome=:nome, Sexo=:sexo, Cidade=:cidade where Id=:id");
$BFetch->bindParam(":id",$Id,\PDO::PARAM_INT);
$BFetch->bindParam(":nome",$Nome,\PDO::PARAM_STR);
$BFetch->bindParam(":sexo",$Sexo,\PDO::PARAM_STR);
$BFetch->bindParam(":cidade",$Cidade,\PDO::PARAM_STR);
$BFetch->execute();
}
Na nossa view, arquivo Main.php vamos inserir uma div ResultadoFormulario que vai receber os campos com os dados do cliente para atualização:
<hr>
<br><br>
<h1>Formulário de Atualizações</h1>
<div class="ResultadoFormulario" style="width: 100%; height: 300px; background: green;"></div>
Por fim, vamos chamar nosso ajax pra fazer a seleção de dados:
$(document).on('click','.ImageEdit',function(){
var ImgRel=$(this).attr('rel');
$.ajax({
url: DIRPAGE+'cadastro/puxaDB/'+ImgRel,
method: 'post',
dataType: 'html',
data: {'Id':ImgRel},
success:function(data){
$('.ResultadoFormulario').html(data);
}
});
});
Posts Relacionados
MVC Completo - #18 Model IV (Deletar)
Hoje vamos implementar a parte de deletar dados do nosso model. Vamos aproveitar a oportunidade para usar o Ajax com PHP e JQuery também.
MVC Completo - #20 Exemplo Completo
Hoje vamos fazer um exemplo completo do sistema MVC, utilizando o model, view e controller. Para isso, faremos um login simples.