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 ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • 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.
×

Informação importante

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