Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

MVC Completo - #18 Model IV (Deletar)

26/04/2018

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. Utilizaremos a mesma tabela criada na aula de seleção acrescentando uma coluna que receberá inputs checkbox com o valor da Id do Banco de Dados.

Implementando o Ajax no MVC

Para usarmos o ajax a maneira mais fácil é utilizando a biblioteca JQuery. Vamos baixá-la e após baixá-la vamos salvar o JQuery dentro de public/js. Nessa mesma pasta vamos criar também o arquivo Javascript.js:

$(document).ready(function(){
    var DIRPAGE="http://"+document.location.hostname+"/";
    $('#FormSelect').on('submit',function(event){
        event.preventDefault();
        var Dados=$(this).serialize();
    
        $.ajax({
            url: DIRPAGE+'cadastro/seleciona',
            method:'post',
            dataType:'html',
            data: Dados,
            success:function(Dados){
                $('.Resultado').html(Dados);
            }
        });
    });
});

No diretório app/view/cadastro/main.php vamos criar uma div com a class Resultado que ficará responsável por receber o resultado do ajax acima:

<!-- Será responsável por receber a tabela de pesquisa-->
<div class="Resultado" style="width: 100%; height: 300px; background: pink;"></div>

Vamos criar também dentro desse mesmo diretório o Footer.php que linkará nosso arquivo JQuery e Javascript:

<script src="<?php echo DIRPAGE.'public/js/JQuery.js' ?>"></script>
<script src="<?php echo DIRPAGE.'public/js/Javascript.js' ?>"></script>

Criando o método deletar no controller e no model

Vamos criar primeiramente o model com o método deletarClientes().

#Deletar direto no banco
protected function deletarClientes($Id)
{
    $BFetch=$this->Db=$this->conexaoDB()->prepare("delete from teste where Id=:id");
    $BFetch->bindParam(":id",$Id,\PDO::PARAM_INT);
    $BFetch->execute();
}

Posteriormente vamos chamar esse método no nosso ControllerCadastro:

#Deletar dados do DB
public function deletar()
{
    $this->recVariaveis();
    foreach($this->Id as $IdDeletar)
    {
        $this->deletarClientes($IdDeletar);
    }
}

Alguns ajustes

Precisamos fazer alguns ajustes da última aula para que o deletar funcione corretamente. O primeiro é fazer um if no construct para que ele não renderize a página toda hora. Deve ser feito um if assim:

use \Src\Traits\TraitUrlParser;
public function __construct()
{
    if(count($this->parseUrl())==1)
    {
        $Render=new ClassRender();
        $Render->setTitle("Cadastro");
        $Render->setDescription("Faça seu cadastro.");
        $Render->setKeywords("cadastro de clientes, cadastro");
        $Render->setDir("cadastro");
        $Render->renderLayout();
    }
}

Com o if acima ele só vai chamar nosso layout a primeira vez que acessarmos a url cadastro.

Precisamos também que o Array do método selecionaClientes criado na última aula retorne a Id também. Assim:

$Array[$I]=['Id'=>$Fetch['Id'],'Nome'=>$Fetch['Nome'],'Sexo'=>$Fetch['Sexo'],'Cidade'=>$Fetch['Cidade']];

No nosso ControllerCadastro precisamos criar o atributo Id e recebê-lo no método recVariaveis().

#Receber variáveis
private function recVariaveis()
{
    if(isset($_POST['Id'])){ $this->Id=$_POST['Id']; }
    if(isset($_POST['Nome'])){ $this->Nome=filter_input(INPUT_POST, 'Nome', FILTER_SANITIZE_SPECIAL_CHARS); }
    if(isset($_POST['Sexo'])){ $this->Sexo=filter_input(INPUT_POST, 'Sexo', FILTER_SANITIZE_SPECIAL_CHARS); }
    if(isset($_POST['Cidade'])){ $this->Cidade=filter_input(INPUT_POST, 'Cidade', FILTER_SANITIZE_SPECIAL_CHARS); }
}

Dessa forma faremos a seleção sem refresh de página e podemos deletar um ou mais dados.

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

MVC Completo - #17 Model III (Pesquisa)
Nessa aula continuamos com nosso model, entretanto trabalharemos com a parte de pesquisa e seleção no MVC.
Saiba mais!
MVC Completo - #19 Model V (Atualizar)
Hoje vamos finalizar a parte de Model com a atualização de dados no banco de dados do nosso sistema MVC.
Saiba mais!
MVC Completo
Neste curso aprenderemos como criar o padrão de projeto MVC completo, analisando desde sua estrutura até a programação.
Saiba mais!