Jump to content
Roberto S. Santos

PHP _cadastro dinâmico

Recommended Posts

Boa noite amigos.
Eu preciso fazer o seguinte...
Eu abro o aplicativo e o cursor espera que entre com um código de 10 digitos.
Mas estarei usando um leitor de cartãos que geram este numero.Vamos dizer que ao encostar no aparelho ele me exiba o numero 0002430037 de uma vez só.
Como posso fazer com que a minha aplicação em PHP faça a busca ma base de dados cartões pelo numero e me exiba os dados sem que eu aperte nenhuma tecla para fazer a busca ?

Base de Dados : gestão

tabela : cartões

Obrigado pela atenção.

Share this post


Link to post
Share on other sites

Então, nesse caso você terá que usar JQUERY.

 

Mas como você quer a requisição ? Termine de digitar os 10 dígitos e fazer a pesquisa, ou você trocar o cursor do mouse de campo, ou quando apertar um botão ? Como seria isso ?

 

 

Share this post


Link to post
Share on other sites

Ok, vou te mostrar um código que faz exatamente o que você quer, porém não é com leitor de código, e sim quando você troca o focus do campo.

 

admin.js

$('#cnpj').change(function(){ // esse change é quando você acaba de preencher e aperta o tab ou clica fora do campo
	var cnpj = $('#cnpj').val(); // aqui você irá pegar o valor que o usuário preencheu
	var processar = 'cnpj='+cnpj+'&acao='+'1'; // aqui você passa os valores que o usuário preencheu mais o case switch pra onde vai a requisição
	$.ajax({
		url:'paginaphp', // url da página php
		data:processar, // passando os dados via AJAX
		type:'POST', // tipo POST
		dataType:'json', // retorno JSON
		success: function(dados){
			if(dados == 5){ // se o retorno for igual a 5, exibe a modal com erro,
				   $('input[name=empresa]').val("");
				   $('#modal_msg').modal('show');
				   $('.modal-title').html('Aviso:');
				   $('#popup_msg').html('<h2>Empresa não cadastrada ou não está regularizada. Entre em contato com a Allen por favor.</h2>');
				}else{ // se o erro não for 5, preenche os campos vindo do banco
					$.each(dados, function(key, value){
						if(key == "empresa"){
							$('input[name=empresa]').val(value);
							} 
						});
				}
			}
		});
	});

Admin.php

ob_start();
session_start();
include('functions.php'); // arquivo de conexao com o banco

$acao = $_POST['acao'];

try{

switch($acao){
	case '1':
    $cnpj = strip_tags(trim($_POST['cnpj']));
	$sel = $pdo->prepare("SELECT cnpj, empresa, status FROM cnpj WHERE cnpj = ?");
	$sel->bindValue(1, $cnpj);
	$sel->execute();
	$consulta = $sel->rowCount();
	if($consulta >= 1){ // se for igual a 1, existe no banco e preenche o campo 
		echo json_encode($sel->fetch(PDO::FETCH_ASSOC));
		} else { 
			echo '5'; // se exibir 5, é pq nao foi achado no banco
			}
    break;

Esse pequeno código faz o seguinte, você digita o CNPJ, faz um pesquisa, e pega o nome da empresa do CNPJ inserido e retorna o nome.

 

Ver se você consegue entender.

Share this post


Link to post
Share on other sites

Cara, fiz um exemplo aqui, acho que atende suas necessidades, só vai enviar a requisição, se tivér os 10 dígitos, busca no banco o codigo que você passou por parametros.

 

Index.php

<?php
include('requisicao.php');
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-bootstrap/0.5pre/assets/css/bootstrap.min.css" rel="stylesheet">
<script src="requisicao.js"></script>
</head>
<body>
<form name="enviar" method="post" class="form-horizontal">
	<input type="text" name="codigo" maxlength="10" placeholder="Código:">
	<input type="text" name="nome" maxlength="10" placeholder="Nome:">
	<input type="submit" value="Enviar" class="btn">
</form>
</body>
</html>

 

Requisicao.js // onde faz a mágica de só enviar quando conter 10 dígitos no campo

// JavaScript Document
$(document).ready(function() {
		$('input[name=codigo]').keyup(function(){
			var code = $(this).val();
			if(code.length == 10){
				var dados = 'code='+code+'&acao='+'1';
				//alert(dados);
				$.ajax({
					url: 'requisicao.php',
					data: dados,
					type:"POST",
					dataType: 'json',
					success: function(ok){
						if(ok == '2'){
							alert('falha');
						}else {
							$.each(ok, function(key, value){
								if(key == 'nome'){
									$('input[name=nome]').val(value);
								}
							});
						}
					}
				});
			}
		});
	});
requisicao.php // onde faz a consulta ao banco

<?php 
include('conexao.php'); // arquivo de conexao com o banco
$acao = @$_POST['acao'];
try{
switch($acao){
	case '1':
		
		$code = strip_tags(trim($_POST['code']));
		$sel = $pdo->prepare('SELECT code, nome FROM codebar WHERE code = ?');
		$sel->bindValue(1, $code);
		$sel->execute();
		$contar = $sel->rowCount();
		if($contar >=1){
		$select = $sel->fetch(PDO::FETCH_ASSOC);
		echo json_encode($select);
		} else {
		echo '2'; // aqui não encontrou nenhum codigo de barra no banco
		}
	break;
}
} catch(PDOException $e){
	echo 'Erro: '.$e->getMessage();
}
?>
conexao.php // Arquivo de conexao com o banco de dados

<?php 
try{
	$pdo = new PDO('mysql:host=localhost; dbname=testJquery', 'root', '');
	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	//echo 'connection ok';
} catch (PDOException $e){
	echo 'Erro'. $e->getMessage();
}
?>

 

Mas vi em alguns fóruns, que o próprio leitor faz a inserção automática. Dê uma olhada nesse fórum:

 

Share this post


Link to post
Share on other sites

Você vai incluir no arquivo INDEX.PHP, repara onde eu coloquei.

 

Index.php

<?php
include('requisicao.php');
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-bootstrap/0.5pre/assets/css/bootstrap.min.css" rel="stylesheet">
<script src="requisicao.js"></script> <!-- AQUI ESTÁ CHAMANDO O ARQUIVO REQUISICAO.JS PARA O INDEX.PHP -->
</head>
<body>
<form name="enviar" method="post" class="form-horizontal">
	<input type="text" name="codigo" maxlength="10" placeholder="Código:">
	<input type="text" name="nome" maxlength="10" placeholder="Nome:">
	<input type="submit" value="Enviar" class="btn">
</form>
</body>
</html>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Alandeoli
      Boa noite Pessoal!
       
       
      Estou criando uma tela de login, e passando os dados para uma pagina que vai se conectar ao AD, mas mesmo eu colocando os campos em branco a conexão esta passando como ok, segue os códigos se puderem me ajudar agradeço muito!
       
      Tela conexao:
       
      <?php   $adServer = "ldap://xxx.xxxx.xx.xx";   $ldap = ldap_connect($adServer); $username = $_POST['user']; $password = $_POST['pass'];   $ldaprdn = 'XXX' . "\\" . $username;   ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);   $bind = @ldap_bind($ldap, $ldaprdn, $password);   if($bind=true)   {   echo "conexão ok";     } else   {   echo "erro";     }   Tela Login:   <!DOCTYPE html> <html lang="pt-br"> <link href='css/login.css' rel='stylesheet' />


        <head> <meta charset="UTF-8"> <title>Tela de Login e Senha</title> </head>   <body> <div name="login" id="login"> <div name="box" id="box"> <form method="POST" action="ad.php" name="form"> Login : <input type="text" name="user" id="user"><br><br> Senha : <input type="password" name="pass" id="pass"><br><br> <input type="submit" value="Login" id="button"> </form> </div> </div>   </body>   </html>                                
    • By dutopfave
      Boa Tarde Galera, tenho um sistema de etiqueta que nele vai também código de barras, quando eu mostro na tela, funciona perfeitamente, mais quando gero pra pdf, com a biblioteca mPDF, da erro,  e é justo o código de barras q da esse erro, oq pode ser sera, segue o código de como ta:
       
      <?php require '../../Connections/config.php'; include "../Classes/funcoes.php"; include "cod.php"; $largura = 140; $altura = 130; include("mpdf60/mpdf.php"); // INICIO RECUPERA O ID DA ETIQUETA IMPORTADA $Row_Id_Etiqueta = addslashes($_GET['id_etiqueta']); $Recuperacao_Etiqueta = $pdo->prepare("SELECT * FROM tb_sys_etiqueta WHERE e_id = :e_id"); $Recuperacao_Etiqueta->bindValue(":e_id", $Row_Id_Etiqueta); $Recuperacao_Etiqueta->execute(); if($Recuperacao_Etiqueta->rowCount() > 0){ $Row_Recuperacao_Etiqueta = $Recuperacao_Etiqueta->fetch(); } // FIM RECUPERA O ID DA ETIQUETA IMPORTADA $id_etiqueta = $_GET['id_etiqueta']; $Lista_Etiqueta = "SELECT * FROM tb_sys_etiqueta WHERE e_id = '$id_etiqueta'"; $Lista_Etiqueta = $pdo->query($Lista_Etiqueta); if($Lista_Etiqueta->rowCount() > 0){ $etiqueta_id = $Lista_Etiqueta->fetch(); $qtd = $etiqueta_id['e_volume'] + 1; $qtd2 = $etiqueta_id['e_volume']; for ($i>0; $i<$qtd; $i++) { if($i>$etiqueta_id['e_pagina']){ // verificar se a pagina é menor que 10 if($i<10){ $n = '0'; }else{ $n = ''; } // verificar se a quantidade é menor que 10 if($etiqueta_id['e_volume']<10){ $nq = '0'; }else{ $nq = ''; } $html .= '<div class="etiqueta"> <div class="etiqueta-topo"> <img src="../images/logo.fw.png" width="116" height="52"> </div> <div class="etiqueta-empresa"> <div class="etiqueta-empresa-left"> <h1>GYN</h1> </div> <div class="etiqueta-empresa-right"> <h1>VOL: '.$n.''.$i.'/'.$nq.''.$qtd2.'</h1> </div> </div> <div class="etiqueta-endereco"> <div class="etiqueta-endereco-left"> <span><b>Remetente:</b></span><br/> <span>'.$etiqueta_id['e_remetente'].'</span><br/><br/> <span><b>Destinatário:</b></span><br/> <span>'.$etiqueta_id['e_destinatario'].'</span> </div> <div class="etiqueta-endereco-right"> '.geraCodigoBarra('232323232323').' <br /> '.$etiqueta_id['e_codigo_barras'].' <p>Goiânia/GO</p> </div> </div> </div>'; } } } $mpdf = new mPDF('utf-8', array($largura,$altura)); $css = file_get_contents("css/estilo.css"); $mpdf->WriteHTML($css,1); $mpdf->WriteHTML($html); $mpdf->Output(); exit;  
      a função pra gera o código de barras: cod.php
       
      <?php function geraCodigoBarra($numero){ $fino = 1; $largo = 3; $altura = 50; $barcodes[0] = '00110'; $barcodes[1] = '10001'; $barcodes[2] = '01001'; $barcodes[3] = '11000'; $barcodes[4] = '00101'; $barcodes[5] = '10100'; $barcodes[6] = '01100'; $barcodes[7] = '00011'; $barcodes[8] = '10010'; $barcodes[9] = '01010'; for($f1 = 9; $f1 >= 0; $f1--){ for($f2 = 9; $f2 >= 0; $f2--){ $f = ($f1*10)+$f2; $texto = ''; for($i = 1; $i < 6; $i++){ $texto .= substr($barcodes[$f1], ($i-1), 1).substr($barcodes[$f2] ,($i-1), 1); } $barcodes[$f] = $texto; } } echo '<img src="../images/p.gif" width="'.$fino.'" height="'.$altura.'" border="0" />'; echo '<img src="../images/b.gif" width="'.$fino.'" height="'.$altura.'" border="0" />'; echo '<img src="../images/p.gif" width="'.$fino.'" height="'.$altura.'" border="0" />'; echo '<img src="../images/b.gif" width="'.$fino.'" height="'.$altura.'" border="0" />'; echo '<img '; $texto = $numero; if((strlen($texto) % 2) <> 0){ $texto = '0'.$texto; } while(strlen($texto) > 0){ $i = round(substr($texto, 0, 2)); $texto = substr($texto, strlen($texto)-(strlen($texto)-2), (strlen($texto)-2)); if(isset($barcodes[$i])){ $f = $barcodes[$i]; } for($i = 1; $i < 11; $i+=2){ if(substr($f, ($i-1), 1) == '0'){ $f1 = $fino ; }else{ $f1 = $largo ; } echo 'src="../images/p.gif" width="'.$f1.'" height="'.$altura.'" border="0">'; echo '<img '; if(substr($f, $i, 1) == '0'){ $f2 = $fino ; }else{ $f2 = $largo ; } echo 'src="../images/b.gif" width="'.$f2.'" height="'.$altura.'" border="0">'; echo '<img '; } } echo 'src="../images/p.gif" width="'.$largo.'" height="'.$altura.'" border="0" />'; echo '<img src="../images/b.gif" width="'.$fino.'" height="'.$altura.'" border="0" />'; echo '<img src="../images/p.gif" width="1" height="'.$altura.'" border="0" />'; } ?>  
    • By Cesar Melo
      Olá. Gostaria de uma opinião sobre onde focar meus estudos para trabalhar com PHP.
      Atualmente tenho conhecimentos com a linguagem PHP, e os seguintes frameworks: Bootstrap e Jquery.
      Recentemente fiz um curso de Laravel+materialize e gostei muito desse framework. Meu primeiro contato com framework para backend e pretendo utilizar o Laravel daqui pra frente nos meus estudos.
       
      Minha questão é a seguinte, quero dar continuidade aos meus estudos para me qualificar para o mercado de trabalho, mas não sei exatamente os próximos cursos que vou estudar.
      Não sei se atualmente há uma combinação de frameworks mais utilizada ou requisitada no mercado de trabalho. Ex: Laravel+vue+bootstrap, ou laravel+angularjs+materialize, tipo isso.
       
      Dei uma pesquisada no google e youtube, e notei que não há muito conteúdo de cursos por exemplo de Laravel+angularjs.
      Procurando algumas vagas de emprego, notei que há grande procurar para profissionais com qualificação em Laravel, e tambem grande procura para profissionais com qualificação em AngularJs, porém vagas distintas. Acho que não vi nenhuma vaga que peça Laravel+AngularJs.
       
      Alguém aí pode me passar uma visão ou dar sua opinião sobre isso, para eu focar meus estudos? Alguém sabe o que andam usando bastante? Ou que seja indicado de trabalhar em conjunto com PHP?
       
      Ah, uma observação... atualmente meu foco são de projetos voltados para sistemas, admin, etc. Não tenho muito perfil para projetos de marketing ou que exijam um frontend "lindo". rsrs.
       
      Grato...
    • By Gemenson Miranda
      Oi pessoal, estou com um problema na minha hospedagem LInux do Godaddy, publiquei meu site, fiz o apontamento correto do banco de dados, mas quando acesso a URL o site me exibe HTTP ERROR 500 exibe realizei a configuração do arquivo .htaccess, alterei as permissões para (755), nada disso resolve... A questão e que sempre que comento as informações de apontamento do banco de dados no arquivo index.php o site carrega normalmente, porem sem conexão com o bando mysql, o que me faz pensar que o erro pode esta relacionado ao banco mysql, porem não consigo visualizar o erro por que a tela fica toda branca e não retorna nada, como resolver esse erro ou ao menos exibir qual erro causa ele?? agradeço!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.