Ir para conteúdo

Arquivado

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

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

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 ?

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

  • Conteúdo Similar

    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

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