Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Sem apertar nenhum botão.
Ele faz a busca automática quando a pessoa encostar o cartão que exibira os 10 numeros para fazer a busca no MysQL
Existe algum código que eu possa implementar no projeto ?
Rapaz, nunca fiz um sistema que tenha um leitor de código, mas posso dar uma pesquisada e postar depois.
Ok.
Eu sei que é busca dinâmica.
Só não sei como fazer isto sem usar a tecla enter pra buscar...rs
Sem problema eu aguardo...rs
Obrigadão mesmo.
Não necessariamente você precisa apertar a tecla ENTER para buscar, você pode simplesmente mudar o foco do mouse, ou outros efeitos para a busca, mas no seu caso como é leitor de código, estarei dando uma olhada.
Deixa te falar...
È tipo eu copiar 10 numeros e jogar no input ai ele faz a busca...só isto.
Derrepente se você me mostrar um codigo que eu possa tentar já ajuda..rs
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.Entendi...rs
Vou jogar e testar pra ver como funciona.
Mesmo assim obrigado pela dica.
Amanhã eu retorno com uma posição o teste.
Obrigadão mesmo.
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'; 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:Greg, boa noite.
Cara agradeço muito mesmo.
Agora só um problema...rs
Este aqui (Requisicao.js) eu coloco em uma página php é isto com este nome ?
Não, esse requisicao.js é um arquivo javascript.
Como incluir ele no resto do codigo ?
Pode mandar no meu e-mail por favor ?
Abraços e novamente obrigado.
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>
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 ?