Ir para conteúdo

Arquivado

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

gabriellima28

Rretornar valores em campos com jquery ajax php

Recommended Posts

Senhores bom dia estou enfrentando o mesmo problema que os colegas, vou explicar melhor.

 

Eu estou precisando retornar valores para alguns inputs, e eu já pesquisei todos as formas de requisição com ajax jquery entre outros porém não estou conseguindo resolver, o que preciso é quando eu digitar no campo txb_MatriculaSolBlock uma Matrícula eu quero que busque no meu banco o resultado do funcionario com essa matricula e eu preencha o campo de txb_NomeSolBlock o o valor retornado, então consigam me ajudar será de grande valia segue os meus códigos

 

Meu aquivo php:

 

<?php


include_once("../includes/conexao.php");


//Esse é o valor que vem do meu formulário
$matSol = mysql_real_escape_string($_REQUEST['txb_MatriculaSolBlock']);


$sqlBuscaSol = mysql_query("SELECT * 
FROM sgb_funcionarios 
WHERE SGB_FUNC_MATRICULA LIKE '%$matSol%' ORDER BY SGB_FUNC_MATRICULA ASC");




$first = true;
while($row = mysql_fetch_array($sqlBuscaSol))
{
$results[] = array('matricula'=>$row['SGB_FUNC_MATRICULA'], 'txb_NomeSolBlock'=>$row['SGB_FUNC_NOME']);
}




echo json_encode($results);


?>
Meu código jquery/javascript:
<script type="text/javascript">


$(document).ready(function(e) {
$('#txb_MatriculaSolBlock').autocomplete({ 
      source: 'BuscaFunc.php', 
      select: function( event, ui ) {
         $("#txb_NomeSolBlock").val(ui.item.nome);
      }
    });
});


</script>
Meus Campos que digito a Matrícula e receberão o retorno:
<input name="txb_MatriculaSolBlock" type="text" id="txb_MatriculaSolBlock" autocomplete="off">
<input name="txb_NomeSolBlock" type="text" id="txb_NomeSolBlock" size="35" autocomplete="off">
Não sei onde está o erro caso puderem me auxiliar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu amigo sempre que vou criar algo faço uso da função $.POST() ou $.GET() do jQuery vai depender do seu form, se for post utilize a primeira e caso seja GET utilize a segunda.

 

Olha esse tutorial aqui que mostra como utiliza-la - http://webvisualedinamica.com/web-visual-dinamica-formulario-de-cadastro-dinamico-com-jquery-php-e-mysql/

 

Espero que ajude, abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Senhores agradeço pela atenção,

 

Eu ja testei varios códigos inclusive convertendo para JSON e não deu certo a ultima forma que tentei foi essa(código abaixo) o que também não obtive sucesso, sinceramente não sei como fazer pra resolver esse problema, nesse exemplo o valor ele retorna normalmente para dentro de uma "div" com o name resultado que criei porém quando coloco pra retornar o valor para um input do tipo text não dá certo agora não sei se há algo de errado no meu código, mais uma vez agradeço.

 

Meu php:

 

<?php
$host = "localhost";
$user = "root";
$senha = "";
$banco = "sgb_bd";
$conexao = mysql_connect($host, $user, $senha);
$selectdb = mysql_select_db($banco);
$matricula = $_GET['matricula'];
$sqlBuscaSol = mysql_query("SELECT * FROM sgb_funcionarios WHERE SGB_FUNC_MATRICULA LIKE '%$matricula%'");
if(@mysql_num_rows($sqlBuscaSol) <= 0){
echo '<h2>Nada Encontrado</h2>';
}
else{
echo '<h2>Resultado ('.@mysql_num_rows($sqlBuscaSol).')</h2>';
}
while($res = mysql_fetch_array($sqlBuscaSol)){
echo $res['SGB_FUNC_NOME'].'<br>';
}
?>
Meu jquery/javascript:
<script type="text/javascript">
$(document).ready(function(e) {
$("input[name=txb_MatriculaSolBlock]").bind('input',function(){
var s = $(this).val();
var conta = $(this).val().length;
if(conta >= 1){
$.get('BuscaFunc.php',{matricula:s},function(retorna){
$("#resultado").html(retorna);
});
}else{
$("#resultado").html("Pesquise Algo");
}
});
});
</script>
Meus Campos que digito a Matrícula e receberão o retorno:
<input name="txb_MatriculaSolBlock" type="text" id="txb_MatriculaSolBlock" autocomplete="off">
<input name="txb_NomeSolBlock" type="text" id="txb_NomeSolBlock" size="35" autocomplete="off">
Ele retorna o valor para para a div #resultado mas quando passo o valor para que um input do tipo text receber não dá certo.
Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui trazer os dados porém agora estou com um outro problema é ao invés de mostrar o texto no campo o que aparece é: [Object,Object]. O que pode ser e alguem pode me auxiar em como resolver ou me direcionar para resolução.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo tem um post aqui no forúm que foi exatamente sobre isso, da uma olhada lá - http://forum.imasters.com.br/topic/485712-jquery-retornando-object-object/

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta fazer assim com o retorno do php:

var jsonParse = JSON.parse(results);

Ai é só utilizar assim:

jsonParse.nome
jsonParse.sobrenome

Sacou?

 

Sobre o JSON.parse do javascript - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

Compartilhar este post


Link para o post
Compartilhar em outros sites

Senhores muitíssimo obrigado pelas dicas e orientações passadas, consegui resolver o problema estou postando os códigos para que ajude outras pessoas com o mesmo problema, forte abraço.

 

 

PHP:

 

$sql = "SELECT * FROM sgb_funcionarios WHERE SGB_FUNC_MATRICULA LIKE '%$pesquisa%'";
$query = mysql_query($sql) or die("ERRO AO BUSCAR");
sleep(3);
if(mysql_num_rows($query) <= 0){
echo 0;
}
else{
while($res = mysql_fetch_assoc($query)){
$result = $res['SGB_FUNC_NOME'];
}
}
echo str_replace('"',' ',json_encode($result));
Javascript/jquery:
$("#txb_MatriculaSolBlock").keyup(function(e) {
var pesquisa = $(this).val();
if(pesquisa != ''){
var dados = {palavra:pesquisa}
//Busca pelo ID_FUNCIONARIO
$.post('includes/BuscaFunc.php?nome=codigo',dados,function(retorna){
var html;
for($i=0; $i< retorna.length; $i++){
$("#txb_CodFuncSol").val(retorna);
}
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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