Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TeixeiraRamos

Não funciona os script para Alterar e Excluir registros

Recommended Posts

Tenho o seguinte:

Citar

config.php

<?php
define('HOST', 'localhost');
define('USER', 'root');
define('PASS', '');
define('BASE', 'phpoo');
Citar

DB.php

<?php
/**
 * Description of DB
 *
 * @author José Ivan
 */

require_once 'config.php';

class DB {
    private static $instance;

    public static function getInstance() {
        if (!isset(self::$instance)) {
            try {
                self::$instance = new PDO('mysql:host=' . HOST . '; dbname=' . BASE, USER, PASS);
                self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                self::$instance->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
            } catch (PDOException $e) {
                echo $e->getMessage();
            }
        }
        return self::$instance;
    }

    public static function prepare($sql) {
        return self::getInstance()->prepare($sql);
    }
}
Citar

CrudUser.php

<?php

require_once 'DB.php';

abstract class CrudUser extends DB {
    
    protected $tabela;
    public $nome;
    public $email;
    
    public function setNome($nome) {
        $this->nome = $nome;
    }
    public function getNome() {
        return $this->nome;
    }
    
    
    public function setEmail($email) {
        $this->email = $email;
    }
    public function getEmail() {
        return $this->email;
    }
    
}
Citar

Usuarios.php

<?php

/**
 * Description of Usuarios
 *
 * @author José Ivan
 */

require_once 'CrudUser.php';

class Usuarios extends CrudUser {
    
    protected $tabela = 'tbl_usuarios';
    
    public function findUnit($id) {
        $sql = "SELECT * FROM $this->tabela WHERE id = :id";
        $stm = DB::prepare($sql);
        $stm->bindParam(':id', $id, PDO::PARAM_INT);
        $stm->execute();
        return $stm->fetch();
    }
    
    public function findAll() {
        $sql = "SELECT * FROM $this->tabela";
        $stm = DB::prepare($sql);
        $stm->execute();
        return $stm->fetchAll();
    }
    
    
    
    public function insert() {
        $sql = "INSERT INTO $this->tabela (nome, email) VALUES (:nome, :email)";
        $stm = DB::prepare($sql);
        $stm->bindParam(':nome', $this->nome);
        $stm->bindParam(':email', $this->email);
        return $stm->execute();
    }
    
    
    public function update($id) {
        $sql = "UPDATE $this->tabela SET nome = :nome, email = :email WHERE id = :id";
        $stm = DB::prepare($sql);
        $stm->bindParam(':id', $id, PDO::PARAM_INT);
        $stm->bindParam(':nome', $this->nome);
        $stm->bindParam(':email', $this->email);
        return $stm->execute();
    }
    
    public function delete($id) {
        $sql = "DELETE FROM $this->tabela WHERE id = :id";
        $stm = DB::prepare($sql);
        $stm->bindParam(':id', $id, PDO::PARAM_INT);
        return $stm->execute();
    }
    
}
Citar

Index.php

<?php
    //require_once 'classes/Usuarios.php';
    function __autoload($class) {
        require_once  '../classes/' . $class . '.php';
    }
?>

<!DOCTYPE html>
<html lang="pt-BR">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
        <title>phpOO - Orientado a Objeto</title>

        <!-- Bootstrap -->
        <link href="../css/bootstrap.min.css" rel="stylesheet">
        
        <script>
            var ch = '<?php echo sha1(time()); ?>';
        </script>
    </head>
    <body>

        <div class="container">

            <header>
                <img src="imagens/logo.png"/>
                <div class="well">
                    <h1 class="text-center">PhpOO Crud - Orientado a Objeto -> <span class="text-primary">ComercioCursos.com.br</span></h1>
                </div>
            </header>

            <!-- Form cadastrar -->
            <div style="margin: 100px 0; text-align: center">
                
                <?php
                    $usuario = new Usuarios();
                    
                    // Cadastro de Usuario
                    if ( isset($_POST['cadastrar']) ):
                        
                        $nome  = $_POST['nome'];
                        $email = $_POST['email'];
                        
                        $usuario->setNome($nome);
                        $usuario->setEmail($email);
                        
                        if ($usuario->insert()) {
                        
                        echo '<div class="alert alert-success alert-dismissible" role="alert">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  <strong>OK!</strong> Incluido com sucesso!!! </div>';
                        
                    } else {
                        echo '<div class="alert alert-success alert-dismissible" role="alert">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  <strong>OK!</strong> Erro ao alterar!!! </div>';
                    }
                    endif;
                    
                    
                    //exclusao de Usuario
                    if (isset($_POST['excluir_ui'])){
                        
                        $id = $_POST['id_ui'];
                        
                        $usuario->delete($id);
                        
                    }
                    
                    // Alterar Usuario
                    if ( isset($_POST['alterar']) ) {
                        $id    = $_POST['id_uii'];
                        $nome  = $_POST['nome'];
                        $email = $_POST['email'];
                        
                        $usuario->setNome($nome);
                        $usuario->setEmail($email);
                        
                        $usuario->update($id);
                        
                    }
                ?>
                

                <legend>Formulário Cadastrar</legend>
                <form class="form-inline" method="post">
                    <div class="input-group">
                        <span class="input-group-addon glyphicon glyphicon-user"></span>
                        <input name="nome" type="text" class="form-control" required >
                    </div>

                    <div class="input-group">
                        <span class="input-group-addon">@</span>
                        <input name="email" type="email" class="form-control">
                    </div>

                    <input name="cadastrar" type="submit" class="btn btn-success" value="Cadastrar">
                </form>
            </div>
            <!-- Fim form cadastrar -->


            <!-- Inicio da tabela -->
            <table class="table table-striped table-bordered table-hover">
                <thead>
                    <tr class="active">
                        <th>Nome</th>
                        <th>E-mail</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($usuario->findAll() as $key => $value) { ?>
          
                    <tr>
                        <td> <?php echo $value->nome;?> </td>

                        <td> <?php echo $value->email;?> </td>

                        <td>

                            <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" onclick="load_modal('<?php echo $value->nome;?>', '<?php echo $value->email;?>', <?php echo $value->id;?>);">
                                Alterar</button>
                            
                            <form class="form_excluir" method="post" style="float: left; margin: 0 15px;">
                                <input name="id_ui" type="hidden" value="<?php echo $value->id;?>"/>
                                <button name="excluir_ui" type="submit" onclick="fn_exluir();" class="btn btn-danger">Excluir</button>
                            </form>
                        </td>

                    </tr>
                    
                    <?php } ?>
                </tbody>
            </table>
            <!-- Fim da tabela -->







            <!-- Modal para alterar Usuário -->
            <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                            <h4 class="modal-title" id="myModalLabel">Alterando Usuário</h4>
                        </div>
                        <div class="modal-body">
                            <form class="form-inline" method="post">
                                <div class="input-group">
                                    <span class="input-group-addon glyphicon glyphicon-user"></span>
                                    <input id="text_nome" name="nome" type="text" class="form-control" required value="" >
                                </div>

                                <div class="input-group">
                                    <span class="input-group-addon">@</span>
                                    <input id="text_email" name="email" type="email" class="form-control">
                                </div>
                                <input id="id_uii" name="id_uii" type="hidden" value=""/>
                                <input name="alterar" type="submit" class="btn btn-warning" value="Alterar">
                            </form>
                        </div>
                    </div>
                </div>
            </div> <!-- fim Modal -->




        </div> <!-- fim cantainer -->





        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="https://code.jquery.com/jquery-1.11.3.min.js" integrity="sha256-7LkWEzqTdpEfELxcZZlS6wAx5Ff13zZ83lYO2/ujj7g=" crossorigin="anonymous"></script>

        <!-- Include all compiled plugins (below), or include individual files as needed -->
        <script src="../js/bootstrap.min.js"></script>

        <script src="../js/script.js"></script>

    </body>
</html>
Citar

script.js

// JavaScript Document
function fn_excluir() {
	$('.form_excluir').submit(function () {
		return confirm("Click OK para continuar?");
		});
}
function load_modal(nome, email) {
	$('#text_nome').val(nome);
	$('#text_email').val(email);
}  

O que vem ocorrendo com os script acima:

 

1 - Clicando no botão "Cadastrar"  do Formulário Cadastrar mostra no formulário " OK! Incluido com sucesso!!!" e o registro é salvo no banco de dados;

2 - Clicando no botão "Alterar", abre um formulário, mostra o registro correspondente aquele  "id", depois da "alteração" e clicando em "Alterar", fecha a mas o registro não é alterado;

3 - Clicando no botão "Excluir", o "id" correspondente é excluído imediatamente do banco de dados, mas não abre a tela com o pedido de confirmação "Clique OK para continuar";

Tanto para "Alterar" como para "Excluir" acredito que esteja no meu script.js, mas já procurei e não vejo onde se encontra o erro. 

 

Obrigado

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
function fn_excluir() {
	$('.form_excluir').submit(function () {
		return confirm("Click OK para continuar?");
		});
}

Se tirar o return e deixar 

confirm("Click OK para continuar?");

num funciona ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

felone,

Infelizmente não.

Continua excluindo o id sem abrir "Click OK para continuar?"

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 horas atrás, TeixeiraRamos disse:

felone,

Infelizmente não.

Continua excluindo o id sem abrir "Click OK para continuar?"

 

 

Man, não sei se vai funcionar mas tenta isso 

function fn_excluir() {
    var resultado = confirm("Click OK para continuar?");
    if (resultado == true) {
      $('.form_excluir').submit(function () {
        return;
        });  
    }else {
        alert("Registro não pode ser excluido");
    }
    
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou.

Continua excluindo direto "sem passar" pela function.

Estou cometendo algum erro nesse script.js. Será que salvei errado o script no DW, mas isso não procede também porque se eu colocar tudo aqui com "comentário":

function load_modal(nome, email) {
	//$('#text_nome').val(nome);
	//$('#text_email').val(email);
}  

afeta a tela que abre para alterar o registro, ou seja, não aparece nem o "nome" nem o "e-mail" do "Id" que se clicou para alterar.  Retirando o "comentário" volta a aparecer corretamente o "nome" e o "e-mail", mas não altera o registro. Com isso se conclui que nessa parte a function está funcionando, mas o "update" que é bom nada. 

 

Agora não sei se é o script.js ou o formulário nessa parte aqui:

 //exclusao de Usuario
                    if (isset($_POST['excluir_ui'])){
                        
                        $id = $_POST['id_ui'];
                        
                        $usuario->delete($id);
                        
                    }
                    
// Alterar Usuario
                    if ( isset($_POST['alterar']) ) {
                        $id    = $_POST['id_uii'];
                        $nome  = $_POST['nome'];
                        $email = $_POST['email'];
                        
                        $usuario->setNome($nome);
                        $usuario->setEmail($email);
                        
                        $usuario->update($id);
                        
                    }

Gostaria de ver funcionando, mas até agora nada.

 

 

 

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 12/11/2018 at 12:35, TeixeiraRamos disse:

<form class="form_excluir" method="post" style="float: left; margin: 0 15px;"> <input name="id_ui" type="hidden" value="<?php echo $value->id;?>"/> <button name="excluir_ui" type="submit" onclick="fn_exluir();" class="btn btn-danger">Excluir</button> </form>

 

pelo que vi quando você usa onclick para chamar uma função voce não coloca ponto e virgula 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa tambem é voce colocar "Onsubmit"  na tag form, isso para executar o script antes de enviar os dados 

Compartilhar este post


Link para o post
Compartilhar em outros sites

HTML

<form onsubmit="confirmar()" class="form_excluir" method="post" style="float: left; margin: 0 15px;"> <input name="id_ui" type="hidden" value="<?php echo $value->id;?>"/> <button name="excluir_ui" type="submit" onclick="fn_exluir()" class="btn btn-danger">Excluir</button> </form>

 

Java script

function confirmar() {
   resultado = confirm();
   if (resultado == true) {
    fn_excluir()
}else{
    alert("Registro não pode ser excluido");
}
}

 

Voce coloca onsubmit na tag form, depois cria uma função confirmar no js para ser executada antes de enviar os dados do formulário.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, felone disse:

 

pelo que vi quando você usa onclick para chamar uma função voce não coloca ponto e virgula 

Aqui?

<form class="form_excluir" method="post" style="float: left; margin: 0 15px;">
                                <input name="id_ui" type="hidden" value="<?php echo $value->id;?>"/>
                                <button name="excluir_ui" type="submit" onclick="fn_exluir();" class="btn btn-danger">Excluir</button>
                            </form>
Citar

onclick="fn_exluir();"

Não tem ponto e vírgula? Não entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Citar

Voce coloca onsubmit na tag form, depois cria uma função confirmar no js para ser executada antes de enviar os dados do formulário.

 

O que ocorre.

a) Quando clico no Botão "Excluir" abre uma janela com dois botões:  um com botão "OK" e o outro "Cancelar", somente. Não faz pergunta;

b) Clicando no botão "Ok" o registro é excluído fecha a janela;

c) Clicando no botão "Cancelar", abre uma janela informando "Registro não pode ser excluido" e abaixo para marcar "Bloquear janelas de confirmação desta página", habilitando ou não essa mensagem, clicando no "OK" o registro é excluído do banco, ou seja, está excluindo da mesma forma o registro. A function e a onsubmit funcionou em parte, mas excluir.    

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para deixar claro.

Quando se vai submeter um formulário por função javascript, você deve remover o comportamento padrão do browser sobre aquele evento.

Existem duas formas de se fazer isso.

  • 1 - Você deve adicionar o comando onsubmit direto na tag do form exemplo:
<form onsubmit="return false;">

Isso quer dizer que não impota quantos botões haja dentro do form ele nunca será validado por inline, sendo necessário eventos de script para acionar-lo.

Ou nesse mesmo termo chamar diretamente uma função para o evento

<form onsubmit="return MinhaFuncao();">

Sendo então a função que vai tratar do retorno

var retorna = null; // se fosse true retornava
function MinhaFuncao() {
  if (retorna) {
    return true; // O form é submetido
  } else {
    return true; // O form permanece sem submeter
  }
}

 

  • 2 - Que pode ser um caso de uma função depender de outra ou outras funções/condições, tratamos do evento diretamente no script, bastando informar qual elemento é o gatilho que dispara o evento. Exemplo
<form id="identificador">
  <!-- Conteúdo -->
</form>

<script>
  var gatilho = document.getElementById('identificador');
  gatilho.addEventListener('submit', alguma_funcao, false);
</script>

Nesse caso é sempre a função quem vai tratar do retorno.

Que pode ser o pelo termo return false; ou por prevenção do evento padrão

function alguma_funcao(evento) {
  evento.preventDefault(); // Remove o comportamento padrão, seja qual for o evento de origem
  console.log(evento); // Dados de quem disparou o evento é mostrado no console do navegador
}

 

Enfim, é só para esclarecer sobre o assunto de form X script.

 

@TeixeiraRamos Fiz um exemplo para você funcional, porém, como odeio jquery e acho que ele não serve para bost... nenhuma. Fiz só com o bom e prático javascript. E também usei um script para modal meu que também é puro e simples javascript.

Spoiler

Arquivo JS usado: https://github.com/Spell-Master/sm-web/blob/master/javascript/ModalShow.js

Arquivo CSS de apoio: https://github.com/Spell-Master/sm-web/blob/master/css/ModalShow.css

 

 

Exemplo


<link href="ModalShow.css" rel="stylesheet" type="text/css"/>
<script src="ModalShow.js" type="text/javascript"></script>

<?php
if (isset($_POST) && count($_POST) >= 1) {
    echo ("<pre>");
    var_dump($_POST);
    echo ("</pre>");
}
?>

<form id="confirma_acao" method="POST">
    <input type="text" name="valor_A" value="alguma_coisa" />
    <input type="text" name="valor_B" value="alguma_coisa2" />
    <button>Acionar Confirmação</button>
</form>


<div class="modal" id="modal-confirma">
    <div class="modal-box" style="max-width: 600px">
        <div class="modal-header"></div>
        <div class="modal-content" id="carrega_dados"></div>
    </div>
</div>

<script>
    /*
     * Primeiro parâmetro - é o ID do modal que queira abrir
     * Segundo parâmetro - quer dizer que toda vez que o modal for fechado é para limpar seu conteúdo
     */
    var modal = new ModalShow('modal-confirma', true);
    
    var form;
    
    var atual = document.getElementById('confirma_acao'); // Armazenar o id do formulário
    atual.addEventListener('submit', confirmacao, false); // Adiciona o evento para chamar a função

    /*
     * Cria toda a estrutura de confirmação
     */
    function confirmacao(e) {
        e.preventDefault(); // Remove o comportamento padrão do form (funciona igual a "return false")
        form = e.target; // Identifica qual é o alvo atual da função
        var div = document.createElement('div'); // Cria um elemento DIV
        
        /*
         * Aqui eu escrevi o HTML, então você pode criar um div com class do jeito que quiser
         * como se estivesse escrevendo na página
         */
        div.innerHTML = '<button onclick="salvarForm(\'' + form.id + '\')">Confirmar e Salvar o formulário!</button>';
        
        document.getElementById('carrega_dados').appendChild(div); // Insere a div criada dentro da interface do modal
        
        modal.open('Confirmar a Ação??', true); // Abre o modal
    }

    function salvarForm(fID) {
        document.getElementById(fID).submit();
    }
</script>

 

 

Fica a dica, antes de completar uma ação porque esse é o erro de 99.9% das pessoas é não depurar os valores antes da validação, quer dizer que antes de fazer um updade, submit etc.. em um DB. Teste/ veja/ analise com cuidado os dados que você está enviando, só quando tudo estiver de acordo é que você começa a transcrever o resto.

O mesmo vale para formatações HTML.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 horas atrás, TeixeiraRamos disse:

O que ocorre.

a) Quando clico no Botão "Excluir" abre uma janela com dois botões:  um com botão "OK" e o outro "Cancelar", somente. Não faz pergunta;

b) Clicando no botão "Ok" o registro é excluído fecha a janela;

c) Clicando no botão "Cancelar", abre uma janela informando "Registro não pode ser excluido" e abaixo para marcar "Bloquear janelas de confirmação desta página", habilitando ou não essa mensagem, clicando no "OK" o registro é excluído do banco, ou seja, está excluindo da mesma forma o registro. A function e a onsubmit funcionou em parte, mas excluir.    

 

 

Da um console.log(resultado); e veja qual é o retorno da variavel resultado no console do navegador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

lefone e Oamar, muito obrigado pela atenção.

Às vezes começo a fazer algo tenho que interromper. Bate um sono de tombar mesmo. É a glicose muito alta, mesmo tomando a insulina bem cedo. Demorei a responder,  mas não é falta de interesse pelo assunto.

Bem vamos lá:

Observei o seguinte:

a) com script original e com as sugestões postadas do lefone e omar

// JavaScript Document
function fn_excluir() {
	$('.form_excluir').submit(function () {
		return confirm("Click OK para continuar?");
		});
}

function load_modal(nome, email) {
	$('#text_nome').val(nome);
	$('#text_email').val(email);
}  

//Sugestão do forum forum imasters lefone

//function confirmar() {
  // resultado = confirm();
   //if (resultado == true) {
    //fn_excluir()
//}else{
   //alert("Registro não pode ser excluido");
//}
//} 

//Sugestão do forum forum imasters Omar  

//function alguma_funcao(evento) {
  //evento.preventDefault(); // Remove o comportamento padrão, seja qual for o evento de origem
  //console.log(evento); // Dados de quem disparou o evento é mostrado no console do navegador
//}

Mostra no Console:

 

Citar

Failed to load resource: the server responded with a status of 404 (Not Found)
glyphicons-halflings-regular.woff2:1 Failed to load resource: the server responded with a status of 404 (Not Found)
glyphicons-halflings-regular.woff:1 Failed to load resource: the server responded with a status of 404 (Not Found)
glyphicons-halflings-regular.ttf:1 Failed to load resource: the server responded with a status of 404 (Not Found)

 

Agora vou mostrar o que mais encuca é que aqui funciona:

Citar

 

Como acompanhei a aula:

1- Liguei um dos computadores e fui acompanhando a aula;

2- No outro fui digitando os script no DW;

3- Quando criei o script.js começou a não funcionar a parte de Alteração e Exclusão, ou seja, diferente conforme mostra na aula; 

4- Depois de conferir dezenas de vezes, assistindo as aulas não consegui descobrir como que mostra no vídeo a Alterando e Excluindo registro e só o meu não faz;

5- Fui até a página http://comerciocursos.com.br/php-oo-do-jeito-facil-de-crud-com-bootstrap/;

6- Encontrei todos os scripts, exceto o script.js (logo esse) e deletei tudo que digitei e colei os scripts do autor;

7- O problema continua. Como se no vídeo não mostra esse problema. Mostra um erro ou outro aquilo normal que ocorre na digitação, mas o resultado final é bom e Alteração e Exclusão (com pergunta) funcionam;

5- E agora? 

6- Aqui http://comerciocursos.com.br/downloads/?d=Crud phpOO

    manda colocar o e-mail que o download vai para e-mail até agora não enviaram nada.

É a vida.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 13/11/2018 at 15:49, felone disse:

 

pelo que vi quando você usa onclick para chamar uma função voce não coloca ponto e virgula 

Eu coloquei ; e continua.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. alteracoes:
ha dois botoes ocultos; um deles - o de alteracoes - nao esta passando o

"id";

localize essas linhas:

Citar

<input id="id_uii" name="id_uii" type="hidden" value=""/>
<input name="alterar" type="submit" class="btn btn-warning"

value="Alterar">

e troque a primeira linha por essa:

<input id="id_uii" name="id_uii" type="hidden" value="<?php echo $value->id;?>"/>

2. exibir modal de confirmacao de exclusao:

localizar essas linhas:

Citar

</span>
<button name="excluir_ui" type="submit" onClick="fn_exluir();"

class="btn btn-danger">Excluir</button>
</form>

corrigir o nome da funcao:

onClick="fn_excluir();"

conforme esta no "script.js"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezados muito obrigado mesmo,

Fiz conforme sugerido. Ricardo continuou com os erros.

O que mudou com informação Fernando C:

Alterar

a) Clicando no botão "Alterar" e alterando o registro é feita a alteração correta porém não no "Id" correspondente. Por exemplo: Cliquei no registro que corresponde o "id" 4 (ultimo do banco) a Alteração é feita com sucesso;

 

b) Fazendo o mesmo processo, mas clicando no registro correspondente ao "id" número 1, abre a tela para alterar o registro correspondente ao "id", mostra  o "nome" e "email" desse "id" 1, porém alterando altera o "id" 4, o ultimo e não "id" 1 que cliquei;  

 

Excluir

a) Desculpe, editei essa postagem, para informar que fechei a página e voltei a abrir e fiz vários teste e está excluindo corretamente, ou seja, mostra o botão informando  "Clique em OK para continuar". Clicando é excluir é excluído registro concorrente.

 

Na alteração que não está excluindo o registro corretamente. Clique no id 1, altera o registro 9, por exemplo.

 

Pessoal desculpe, mas as vezes não sei o que devo postar para ajudar. Se tiver errando perdão:

Já coloquei tantos comentários tirei voltei a colocar.

 

Usei esse script.js para esse teste:

// JavaScript Document
function fn_excluir() {
	$('.form_excluir').submit(function () {
		return confirm("Click OK para continuar?");
		});
}

function load_modal(nome, email) {
	$('#text_nome').val(nome);
	$('#text_email').val(email);
}  

//Sugestão do forum forum imasters lefone

//function confirmar() {
  // resultado = confirm();
    //if (resultado == true) {
    //fn_excluir()
//}else{
  // alert("Registro não pode ser excluido");
//}
//} 

//Sugestão do forum forum imasters Omar  

//function alguma_funcao(evento) {
  //evento.preventDefault(); // Remove o comportamento padrão, seja qual for o evento de origem
  //console.log(evento); // Dados de quem disparou o evento é mostrado no console do navegador
//}

Testei o index.php

<?php
    //require_once 'classes/Usuarios.php';
    function __autoload($class) {
        require_once  '../classes/' . $class . '.php';
    }
?>

<!DOCTYPE html>
<html lang="pt-BR">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
        <title>phpOO - Orientado a Objeto</title>

        <!-- Bootstrap -->
        <link href="../css/bootstrap.min.css" rel="stylesheet">
        
        <script>
            var ch = '<?php echo sha1(time()); ?>';
        </script>
    </head>
    <body>

        <div class="container">

            <header>
                <img src="imagens/logo.png"/>
                <div class="well">
                    <h1 class="text-center">PhpOO Crud - Orientado a Objeto -> <span class="text-primary">ComercioCursos.com.br</span></h1>
                </div>
            </header>

            <!-- Form cadastrar -->
            <div style="margin: 100px 0; text-align: center">
                
                <?php
                    $usuario = new Usuarios();
                    
                    // Cadastro de Usuario
                    if ( isset($_POST['cadastrar']) ):
                        
                        $nome  = $_POST['nome'];
                        $email = $_POST['email'];
                        
                        $usuario->setNome($nome);
                        $usuario->setEmail($email);
                        
                        if ($usuario->insert()) {
                        
                        echo '<div class="alert alert-success alert-dismissible" role="alert">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  <strong>OK!</strong> Incluido com sucesso!!! </div>';
                        
                    } else {
                        echo '<div class="alert alert-success alert-dismissible" role="alert">
  <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  <strong>OK!</strong> Erro ao alterar!!! </div>';
                    }
                    endif;
                    
                    
                    //exclusao de Usuario
                    if (isset($_POST['excluir_ui'])){
                        
                        $id = $_POST['id_ui'];
                        
                        $usuario->delete($id);
                        
                    }
                    
                    // Alterar Usuario
                    if ( isset($_POST['alterar']) ) {
                        $id    = $_POST['id_uii'];
                        $nome  = $_POST['nome'];
                        $email = $_POST['email'];
                        
                        $usuario->setNome($nome);
                        $usuario->setEmail($email);
                        
                        $usuario->update($id);
                        
                    }
                ?>
                

                <legend>Formulário Cadastrar</legend>
                <form class="form-inline" method="post">
                    <div class="input-group">
                        <span class="input-group-addon glyphicon glyphicon-user"></span>
                        <input name="nome" type="text" class="form-control" required >
                    </div>

                    <div class="input-group">
                        <span class="input-group-addon">@</span>
                        <input name="email" type="email" class="form-control">
                    </div>

                    <input name="cadastrar" type="submit" class="btn btn-success" value="Cadastrar">
                </form>
            </div>
            <!-- Fim form cadastrar -->


            <!-- Inicio da tabela -->
            <table class="table table-striped table-bordered table-hover">
                <thead>
                    <tr class="active">
                        <th>Nome</th>
                        <th>E-mail</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($usuario->findAll() as $key => $value) { ?>
          
                    <tr>
                        <td> <?php echo $value->nome;?> </td>

                        <td> <?php echo $value->email;?> </td>

                        <td>

                            <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" onclick="load_modal('<?php echo $value->nome;?>', '<?php echo $value->email;?>', <?php echo $value->id;?>);">Alterar</button>
                            
                             <form class="form_excluir" method="post" style="float: left; margin: 0 15px;">
<input name="id_ui" type="hidden" value="<?php echo $value->id;?>"/><button name="excluir_ui" type="submit" onclick="fn_excluir();" class="btn btn-danger">Excluir</button></form> 
<!--Fernando C do forum descobriu erro no nome da função -->                                                               
                        </td>

                    </tr>
                    
                    <?php } ?>
                </tbody>
            </table>
            <!-- Fim da tabela -->







            <!-- Modal para alterar Usuário -->
            <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                            <h4 class="modal-title" id="myModalLabel">Alterando Usuário</h4>
                        </div>
                        <div class="modal-body">
                            <form class="form-inline" method="post">
                                <div class="input-group">
                                    <span class="input-group-addon glyphicon glyphicon-user"></span>
                                    <input id="text_nome" name="nome" type="text" class="form-control" required value="" >
                                </div>

                                <div class="input-group">
                                    <span class="input-group-addon">@</span>
                                    <input id="text_email" name="email" type="email" class="form-control">
                                </div>
                                <!--<input id="id_uii" name="id_uii" type="hidden" value=""/>-->
                                <!--Fernando C pede para substituir só alinha acima por essa lonha -->
                                <input id="id_uii" name="id_uii" type="hidden" value="<?php echo $value->id;?>"/>                                                            
                                <input name="alterar" type="submit" class="btn btn-warning" value="Alterar">
                            </form>
                        </div>
                    </div>
                </div>
            </div> <!-- fim Modal -->




        </div> <!-- fim cantainer -->





        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="https://code.jquery.com/jquery-1.11.3.min.js" integrity="sha256-7LkWEzqTdpEfELxcZZlS6wAx5Ff13zZ83lYO2/ujj7g=" crossorigin="anonymous"></script>

        <!-- Include all compiled plugins (below), or include individual files as needed -->
        <script src="../js/bootstrap.min.js"></script>

        <script src="../js/script.js"></script>
      
  
}
       

    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK Gente,

Tive que alterar também a script.js

ficou assim:

// JavaScript Document
function fn_excluir() {
	$('.form_excluir').submit(function () {
		return confirm("Click OK para continuar?");
		});
}

function load_modal(nome, email, id) {
	$('#text_nome').val(nome);
	$('#text_email').val(email);
	$('#id_uii').val(id);
}  

Isso feito mais o que o Fernando C sugeriu ficou completo o CRUD com Bootstrap - PHP 00

Sem vocês não conseguiria. Aqui sempre foi um incentivo para o estudo e aprendizagem.

Obrigados a todos.

Agora vou estudar para inserir mais coisas nesse form.

Desejo Sucesso a todos e fiquem com Deus.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.