Ir para conteúdo

POWERED BY:

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
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
×

Informação importante

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