Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Eduardo Monteiro

Validando Formulário em tempo real

Recommended Posts

Prezados, boa noite,

 

Preciso inserir dados em uma tabela chamado produtos, porém antes de inserir o dados na tabela, gostaria de validar se por exemplo o codigoproduto 15 já existe, caso já exista o sistema deve exibir uma mensagem informando o usuário que já existe este codigoproduto cadastrado, caso ainda não exista, irá inserir o mesmo com sucesso.

 

Classe Produto:

<?php
class Produto{
	private $codigoproduto;
	private $codigoprodutofabricante;
	private $descricao;
	private $qtdeporcaixa;
	private $qtdeproduto;
	private $precocusto;
	private $precovenda;
	private $codigousuario;

	public function setCodigoproduto($codigoproduto){
		$this->codigoproduto=$codigoproduto;
	}

	public function setProdutoCompleto($codigoproduto,$codigofabricante,$descricao,$qtdecx,$qtde,$precocusto,$precovenda){
		$this->codigoproduto=$codigoproduto;
		$this->codigoprodutofabricante=$codigofabricante;
		$this->descricao=trim($descricao);
		$this->qtdeproduto=$qtde;
		$this->qtdeporcaixa=$qtdecx;
		$this->precocusto=$precocusto;
		$this->precovenda=$precovenda;
	}
	public function getCodigoproduto(){
		return $this->codigoproduto;
	}

	public function setCodigofabricante($codigo){
		$this->codigoprodutofabricante=$codigo;
	}

	public function getCodigofabricante(){
		return $this->codigoprodutofabricante;
	}

	public function setDescricaoproduto($descricao){
		$this->descricao=trim($descricao);
	}

	public function getDescricaoproduto(){
		return $this->descricao;
	}

	public function setQtdeporcaixa($qtde){
		$this->qtdeporcaixa=$qtde;
	}

	public function getQtdeporcaixa(){
		return $this->qtdeporcaixa;
	}

	public function setQtdeproduto($qtde){
		$this->qtdeproduto=$qtde;
	}

	public function  getQtdeproduto(){
		return $this->qtdeproduto;
	}

	public function setPrecocusto($preco){
		$this->precocusto=$preco;
	}

	public function getPrecocusto(){
		return $this->precocusto;
	}

	public function setPrecovenda($preco){
		$this->precovenda=$preco;
	}

	public function getPrecovenda(){
		return $this->precovenda;
	}

}

?>

Formulario de Cadastro:

<!DOCTYPE html>
<html lang="en">
<?php include_once "autoload.php";
	spl_autoload_register("my_autoload");
?>
<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>SB Admin 2 - Bootstrap Admin Theme</title>

    <!-- Bootstrap Core CSS -->
    <link href="bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- MetisMenu CSS -->
    <link href="bower_components/metisMenu/dist/metisMenu.min.css" rel="stylesheet">

    <!-- Custom CSS -->
    <link href="dist/css/sb-admin-2.css" rel="stylesheet">

    <!-- Custom Fonts -->
    <link href="bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

</head>

<body>

    <div id="wrapper">
      
        <?php include_once "menu.php";?>

        
        <div id="page-wrapper">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-lg-12">
                        <h1 class="page-header"><?php echo utf8_encode("Cadastro de Produtos");?></h1>
                    
                    <form action="dac/newproduct.php" method="post" name="cadastrousuario">
                            <fieldset>
                                <div class="form-group">
                                <label for="codigoproduto"><?php echo utf8_encode("Código Produto");?></label>
                                    <input onkeyup='if (isNaN(this.value)) {this.value = ""}' class="qtde" placeholder="<?php echo utf8_encode("Código Produto");?>" name="codigoproduto" type="text" autofocus required="required">
                                </div>
                                <div class="form-group">
                                <label for="codigofabricante"><?php echo utf8_encode("Código Fabricante");?></label>
                                    <input onkeyup='if (isNaN(this.value)) {this.value = ""}' class="qtde" placeholder="<?php echo utf8_encode("Código Fabricante");?>" name="codigofabricante" type="text" value="" required="required">
                                </div>
                                <div class="form-group">
                                <label for="descricaoproduto"><?php echo utf8_encode("Descrição Produto");?></label>
                                    <input class="nomecompleto" placeholder="<?php echo utf8_encode("Descrição Produto");?>" name="descricaoproduto" type="text" value="" required="required">
                                </div>
                                <div class="form-group">
                                <label for="qtdecaixa"><?php echo utf8_encode("Quantidade por Caixa");?></label>
                                    <input onkeyup='if (isNaN(this.value)) {this.value = ""}' class="qtde" placeholder="<?php echo utf8_encode("Quantidade por caixa");?>" name="qtdecaixa" type="text" value="" required="required">
                                </div>
                                <div class="form-group">
                                <label for="qtdeprod"><?php echo utf8_encode("Quantidade de itens");?></label>
                                    <input onkeyup='if (isNaN(this.value)) {this.value = ""}' class="qtde" placeholder="<?php echo utf8_encode("Quantidade de itens");?>" name="qtdeprod" type="text" value="" required="required">
                                </div>
                                <div class="form-group">
                                <label for="precocusto"><?php echo utf8_encode("Preço de Custo");?></label>
                                    <input class="preco" placeholder="<?php echo utf8_encode("Preço de Custo");?>" name="precocusto" type="text" value="" required="required">
                                </div>
                                <div class="form-group">
                                <label for="precovenda"><?php echo utf8_encode("Preço Venda");?></label>
                                    <input class="preco" placeholder="<?php echo utf8_encode("Preço de Venda");?>" name="precovenda" type="text" value="" required="required">
                                </div>
                                
                                <!-- Change this to a button or input when using this as a form -->
                                <input type="submit" value="<?php echo utf8_encode("Salvar");?>" name="salvar">
                            </fieldset>
                        </form></div>
                    <!-- /.col-lg-12 -->
                </div>
                <!-- /.row -->
            </div>
            <!-- /.container-fluid -->
        </div>
        <!-- /#page-wrapper -->

    </div>
    <!-- /#wrapper -->

    <!-- jQuery -->
   

    <!-- Bootstrap Core JavaScript -->
    <script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>

    <!-- Metis Menu Plugin JavaScript -->
    <script src="bower_components/metisMenu/dist/metisMenu.min.js"></script>

    <!-- Custom Theme JavaScript -->
    <script src="dist/js/sb-admin-2.js"></script>

</body>

</html>

Página que executa os comando e insere os dados no banco de dados. newproduct.php

<?php

include_once "../dac/autoload.php";
spl_autoload_register ( "my_autoload");

$codigoproduto = trim($_POST['codigoproduto']);
$codigofabricante=trim($_POST['codigofabricante']);
$descricaoproduto=trim($_POST['descricaoproduto']);;
$qtdecaixa=trim($_POST['qtdecaixa']);
$qtdeitens=trim($_POST['qtdeprod']);
$precocusto=trim($_POST['precocusto']);
$precovenda=trim($_POST['precovenda']);


$produto = new Produto();
$produto->setProdutoCompleto($codigoproduto, $codigofabricante, $descricaoproduto, $qtdecaixa, $qtdeitens, $precocusto, $precovenda);

/**
 echo $produto->getCodigoproduto()."<br/>";
 echo $produto->getCodigofabricante()."<br/>";
 echo $produto->getDescricaoproduto()."<br/>";
 echo $produto->getQtdeporcaixa()."<br/>";
 echo $produto->getQtdeproduto()."<br/>";
 echo $produto->getPrecocusto()."<br/>";
 echo $produto->getPrecovenda()."<br/>";
 **/

$comando=new comando();
if($comando->contaCodigoSistema($codigoproduto)==0){
	$comando->InsereProdutos($codigoproduto, $codigofabricante, $descricaoproduto, $qtdecaixa, $qtdeitens, $precocusto, $precovenda);
}elseif ($comando->contaCodigoSistema($codigoproduto)>0){
	
	header('Location:../produtocadastro.php');
}
//header('Location:../produtocadastro.php');

?>

Me ajudem por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de inserir o produto, faça uma busca na tabela pelo código que está vindo do formulário.
Se ele existir, exiba a mensagem ao usuário e aborte a inserção. Caso negativo, continue com a inserção normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos sistemas que faço, quando preciso de uma verificação prévia de dados, do tipo citado por você, utilizo AJAX para fazer a verificação, obter a resposta do BD e informar ao usuário.

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.