Não funciona os script para Alterar e Excluir registros
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">×</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">×</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">×</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.
ObrigadoDiscussão (17)
Carregando comentários...