Varíavel PHP receber o valor de um INPUT HTML para pesquisar no banco

HTML

MySQL

JavaScript

PHP

19/04/2018

Galera, tenho o seguinte código:

<?php 
session_start();
?>
<!DOCTYPE html>
<html>
<head>
	<title>Cadastro de OP''s</title>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link href="css/bootstrap.min.css" rel="stylesheet">
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
</head>
<body>
	<script language=''JavaScript''>
		function SomenteNumero(e){
			var tecla=(window.event)?event.keyCode:e.which;   
			if((tecla>47 && tecla<58)) return true;
			else{
				if (tecla==8 || tecla==0) return true;
				else  return false;
			}
		}
	</script>
	<?php
	if(!empty($_SESSION[''cadastro''])){ 
		if($_SESSION[''permite_cadastrar''] == 0){
			?>
			<script language="JavaScript"> 
				window.location="inicial.php"; 
				window.alert("Acesso Negado! Sem permissão!");
			</script> 
			<?php
		}	
	}else{
		$_SESSION[''msg''] = "Área restrita";
		?> 
		<script language="JavaScript"> 
			window.location="index.php"; 
			window.alert("Area Restrita");
		</script> 

		<noscript> 
			Se não for direcionado automaticamente, clique <a href="index.php">aqui</a>. 
		</noscript>
		</script>
		<script type="text/javascript">
			function valida(){
				window.alert("Olá!")
			}
		</script>
		<?php
	}
$servidor = "localhost";
$login = "maicon.friedel";
$senha = "IGszKJk46GMc3BCE";
$dbname = "mercotoys";
$ref = 123;
	$conn = mysqli_connect($servidor, $login, $senha, $dbname);
	$referencia1 = "SELECT descricao from referencias where referencia = ''$ref''";
	$referencia = mysqli_query($conn, $referencia1);
	$linhas = mysqli_num_rows($referencia);
	while ($linhas = mysqli_fetch_array($referencia)){
		$referencia3 = $linhas[''descricao''];
	}
	?>
	<script type="text/javascript" src="date_hour_mask.js"></script>
	<p align="right"><a href="inicial.php">Voltar a Página Inicial</a> </p>
	<div class="container">
		<br>
		<h1>Cadastro de OP</h1>
		<br>
		<form class="form-horizontal" method="POST" action="cadastra.php" name="form1">
			<div class="row">
				<div class="col-md-2">
					<label>OP: </label>
					<input type="text" name="op" class="form-control" placeholder="OP" onkeypress="return SomenteNumero(this)" required>

				</div>

				<div class="col-md-2">
					<label>Lote: </label>
					<input type="text" name="lote" class="form-control" placeholder="Lote" onkeypress="return SomenteNumero(this)">
				</div>

				<div class="col-md-2">
					<label>Referência: </label>
					<input type="text" name="referencia" class="form-control" placeholder="Referência" id="ref" onkeypress="return SomenteNumero(this)" required onblur="valida(this)">

				</div>
				<div class="col-md-3">
					<label>Descrição: </label>
					<input type="text" name="descricao" class="form-control" placeholder="Descrição" id ="descricao" required>
				</div>
				<div class="col-md-3">
					<label for="data">Data: </label>
					<input type="date" name="data" class="form-control" required/>
				</div>
			</div>	
			<div class="row">
				<div class="col-md-4">
					<label for="operadores">Operadores: </label>
					<textarea name="operadores" class="form-control" rows="4" id="operadores" placeholder="Informe os operadores, por ordem de Posto" required></textarea>
				</div>
				<div class="col-md-2">
					<label>Controle Qualidade:</label>	
					<input type="text" name="qualidade_inicial" class="form-control" required placeholder="Inicial" onkeypress="return SomenteNumero(this)" /><br>
					<input type="text" name="qualidade_final" class="form-control" required placeholder="Final" onkeypress="return SomenteNumero(this)" />

				</div>
				<div class="col-md-2">
					<label>Hora Início e Fim: </label>
					<input type="text" name="inicio" class="form-control" placeholder="Hora Início" onkeypress="valida_horas(this)"  maxlength="5" required>
					<br>
					<input type="text" name="fim" class="form-control" placeholder="Hora Fim" onkeypress="valida_horas(this)" maxlength="5" required>
				</div>
				<div class="col-md-2">
					<label>Parada: </label>
					<input type="text" name="parada" class="form-control" placeholder="Minutos parados" onkeypress="return SomenteNumero(this)">
					<br>
					<input type="text" name="motivo" class="form-control" placeholder="Motivo Parada" >
					<p> <input type="checkbox" name="lanche" value="lanche"> <label>Parada do Lanche</label></p>  

				</div>
				<div class="col-md-2">

					<br>
					<label>Quantidade de Peças: </label>
					<input type="text" name="qtd_pecas" class="form-control" placeholder="Qtd Peças" required onkeypress="return SomenteNumero(this)">
				</div>
			</div>
			<br>
			<br>
			<p align="center"><input type="submit" name="submit" value="Registrar" class="btn btn-success"/></p>
		</form>
		<p id="desc"></p>
	</div>

</body>
</html>


Preciso que a varíavel $ref na linha 57, receba o valor digitado no input referencia, na linha 87, como posso fazer isso sem dar refresh na página? Pois quando a pessoa digitar a referência no input, com a função onblur, quando ela sair do input, quero fazer um window.alert em javascript, que atualmente é a função valida() linha 47. para pesquisar no banco a referência e mostrar a descrição, conforme o select na linha 59, e preciso que essa varíavel $ref receba o valor digitado no Input sem atualizar a página.
Ja tentei usar o document.getelementbyid, mas não funcionou.... Como posso fazer isso?
Maicon Friedel

Maicon Friedel

Curtidas 0

Respostas

Willian Silva

Willian Silva

19/04/2018

Bom dia Maicon Friedel
Para executar a função valida() pode ser usar o onBlur ou onChange, e coloca a função, você pode da uma olhada com o jquery, tem muita coisa que ele faz, ainda mais os plugin do jquery como o validate você consegue validar mais fácil deixa só numero aquele campo, acho que também tem algo no html 5 também sobre essa parte de só numero talvez coloco o type dele diferente, tudo é fácil de consegui exemplos na internet.
Sobre a parte de mostra a descrição você pode usar requisão ajax, tem varios exemplos usando jquery, ou você pode fazer com javascript puro, mais é bem complicado, mais apos que você realizou a requisição ajax, você encaminha a descrição para uma tag span ou um input você pode montar o html pelo javascript mesmo e da um document.getelementbyid.html(CONTEÚDO).

Vou coloca alguns links para auxilo sobre as coisas que descrevi nessa resposta por favor tira uns minutos e tenta entende, ajuda bastante no teu desenvolvimento de trabalho ou qualquer coisa.

https://www.devmedia.com.br/validacao-com-jquery-como-usar-o-plugin-validation/33670 -> sobre a parte de validação, imagino que tenha exemplo que mostra para o campos so receber numero.
https://www.devmedia.com.br/ajax-com-jquery-trabalhando-com-requisicoes-assincronas/37141 -> sobre requisição ajax, tem exemplos.
https://api.jquery.com/category/events/ -> sobre os eventos que existe com jquery, maioria é nativo do javascript.
GOSTEI 0
Aparecida Gonçalves

Aparecida Gonçalves

19/04/2018

Olá Maicon,
tudo bem?

Para atribuir um padrão onde seu input receba apenas números você pode usar dessa forma:

<input type="text" required="required" name="numerodigitado" pattern="[0-9]+$" />

Para uma variável PHP receber o que foi digitado no input, você precisa verificar pra onde seu formulário envia o que foi digitado. Então abra seu código cadastra.php e insira dentro dele:

<?php
$recebe = $_POST['numerodigitado'];

Espero ter ajudado!
Cida Luna.
GOSTEI 0
POSTAR