Ir para conteúdo
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.

Compartilhar este post


Link para o post
Compartilhar em outros 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 ?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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:

 

Compartilhar este post


Link para o post
Compartilhar em outros 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>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por RSN
      Boa Noite, 
      Gostaria de saber se existe a possibilidade de gravar além do id do option value outra variavel, para enviar via post.
      <div class="form-group"> <label class="col-md-4 control-label" for="txtgrupo">Tipo de Pagamento : </label> <div class="col-md-4"> <select id="" class="selectpicker" data-live-search="true" name="tipo_pagamento" > <?php $query = mysql_query("SELECT * FROM tipo_pagamento ORDER BY id ASC"); while($result = mysql_fetch_array($query)) { echo '<option value="'.$result["id"].'">'.$result["nome_tipo"].'</option>'; } ?> </select> </div> </div>  
    • Por JeanTDZ
      Eu tenho um form com algumas informações etc. O form envia pro banco de dados e tudo mais, funcional.
       
      Alguém teria algum exemplo que após o submit, o form é transformado em pdf/doc e direcionado para uma pasta/ftp já criada.?
    • Por jparenque
      Pessoal, estou precisando de um código em php que faça o seguinte:

      1- acesse uma url capture e grave o código fonte
      2- acesse novamente a mesma url, capture o código fonte e compare com o código da primeira captura
      3- se o código for igual ao da primeira captura ele acessa novamente e compara novamente
      4- se o código for diferente do da primeira captura ele tem que abrir o navegador Chrome e ir para essa url através do navegador.
      5- o fim do código deverá ser apenas quando ele acessar a url encontrar um conteúdo diferente do da primeira captura.

      Vou rodar o php na máquina local. O objetivo é monitorar uma página url específica com relação à uma alteração que ocorrerá. E quando ocorrer precisarei atuar nessa página imediatamente.

      Obrigado a todos!
    • Por reisleandro
      Alguém ai conhece um servidor php portável que possa rodar direto de um pendrive e que não apresente a mensagem de bloqueio do firewall (Imagem abaxio). O servidor embutido do php faz exatamente isso mas apenas como sigle thread. Queria uma solução um pouco mais robusta que pudesse rodar em qualquer maquina sem apresentar essa mensagem. Plataforma alvo Windows.
       

    • Por JOSELUISALD
      Bom dia. Em minha aplicação o cliente quer uma cópia de seu sistema localmente e remoto (hospedado). Tem como eu fazer a sincronização dos bancos de dados, para que tudo que seja feito localmente seja inserido automaticamente no banco remoto? Desde já obrigado.
×

Informação importante

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