Ir para conteúdo

POWERED BY:

Arquivado

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

Fabio Victor

Consigo utilizar dois scripts Ajax no mesmo campo Input?

Recommended Posts

Boa tarde Galera, estou com o seguinte problema:

 

Tenho campo input que tem sugestões de preenchimento, o que eu preciso fazer é que quando o usuário preencha esse campo um outro campo seja preenchido automaticidade o que não está acontecendo

 

Eu acho que o problema está em utilizar dois códigos ajax no mesmo campo, ou pode ser apenas erro meu mesmo dai a minha duvida

 

o Código:

 

Ps: São adaptações de exemplos que encontrei na internet pois não sei nada de Ajax :upset:

 

Ajax

<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript">
	function lookup(inputString) {
		if(inputString.length == 0) {
			// Hide the suggestion box.
			$('#suggestions').hide();
		} else {
			$.post("busca.php", {queryString: ""+inputString+""}, function(data){
				if(data.length >0) {
					$('#suggestions').show();
					$('#autoSuggestionsList').html(data);
				}
			});
		}
	} // lookup
	
	function fill(thisValue) {
		$('#inputString').val(thisValue);
		setTimeout("$('#suggestions').hide();", 200);
	}
</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $("input[name='cargo']").blur(function(){
    var codigo = $("input[name='codigo']");
     
    $( codigo ).val('Carregando...');
     
    $.getJSON(
    'function2.php',
    { cargo: $( this ).val() },
    function( json )
    {
    $( codigo ).val( json.codigo );
    }
    );
    });
    });
    </script>

 

Formulário (só o começo pois é extenço, então vai só a parte que importa)

 

<tr>
    <td>	<input name="codigo" type="text" size="5"/></td>
    <td>	<input name="cargo" type="text" size="30" value="" id="inputString" onKeyUp="lookup(this.value);" onBlur="fill();" />
			<div class="suggestionsBox" id="suggestions" style="list-style: none;">
			<div class="suggestionList" id="autoSuggestionsList">
			</div>
			</div></td>

 

Função 1

 

    <?php
	
    header("Content-Type: text/html; charset=ISO-8859-1");
    echo suggest( getGet('parte') );
    function suggest( $palavra )
    {
    $sql = "SELECT `id`, `cargo` FROM `cargos` ";
    if( !empty($palavra) )
    $sql .= "WHERE `cargo` LIKE '{$palavra}%'";
    $mysqli = new mysqli( 'localhost','root','','rhplus' );
    $query = $mysqli->query( $sql );
    if( $query->num_rows>0 )
    {
    $li='';
    while( $dados = $query->fetch_object() )
    $li .= '<li><a href="?id='.$dados->id.'">'.$dados->cargo.'</a></li>';
    }
    else
    $li = 'Nenhum cadastro encontrado!';
    return $li;
    }
    function getGet( $campo ){
    return ( isset($_GET[ $campo ]) ) ? filter( $_GET[ $campo ] ) : null;
    }
    function filter( $var )
    {
    if(!get_magic_quotes_gpc() )
    $str = mysql_real_escape_string( $var );
    else
    $str = $var;
    $str = str_replace( '#', '\#', $str );
    return $str;
    }
	?>

 

Função 2

 

<?php
    /**
    * função que devolve em formato JSON os dados do cliente
    */
    function retorna( $cargo, $db )
    {
    $sql = "SELECT `id`, `cargo`, `codigo`
    FROM `cargos` WHERE `cargo` = '{$cargo}' ";
     
    $query = $db->query( $sql );
     
    $arr = Array();
    if( $query->num_rows )
    {
    while( $dados = $query->fetch_object() )
    {
    $arr['codigo'] = $dados->codigo;
    }
    }
    else
    $arr['codigo'] = 'não encontrado';
     
    return json_encode( $arr );
    }
     
    /* só se for enviado o parâmetro, que devolve os dados */
    if( isset($_GET['cargo']) )
    {
    $db = new mysqli('localhost', 'root', '', 'rhplus');
    echo retorna( filter ( $_GET['cargo'] ), $db );
    }
     
    function filter( $var ){
    return $var;
    }
	?>

 

 

Primeiro tentei deixar as duas funções na mesma pagina e não funcionava, ai separei as duas e tbm não funcionou

 

Agradeço a quem puder me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc ta chamando o jQuery 2 vezes. Chame uma vez só:

<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript">
//..
</script>

<!--
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
-->

<script type="text/javascript">
  //..
</script>
esses 2 scripts são do meu blog :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

vc ta chamando o jQuery 2 vezes. Chame uma vez só:

<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript">
//..
</script>

<!--
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
-->

<script type="text/javascript">
  //..
</script>
esses 2 scripts são do meu blog :lol:

 

 

são sim, seu blog é muito bom cara parabéns :clap:

 

eu sou bem ruim de juavascript, vou fazer essa alteração e testar aqui vlw

 

 

agora funciona e não funciona ao mesmo tempo rsrs

quando eu começo a digitar no campo ele chama o autocomplete normalmente mas quando eu escolho o valor ele preenche o outro campo apenas com a mensagem de não encontrado e não com o código que o que preciso

pode me ajudar??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funciona só, só você chamar cada função em um ID e em uma Class,
O que deve estar errado é sua lógica amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

exemplo:

 

 

$(function(){
 
 
$("#exemplo").click(function(){
// aqui sua lógica
});
 
 
$(".exemplo").click(function(){
// aqui sua lógica
});
 
 
});
 
<input type="text" id="exemplo" class="exemplo">

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

exemplo:

 

 

$(function(){
 
 
$("#exemplo").click(function(){
// aqui sua lógica
});
 
 
$(".exemplo").click(function(){
// aqui sua lógica
});
 
 
});
 
<input type="text" id="exemplo" class="exemplo">

 

 

vlw cara to tentando aqui :yes:

 

Galera eu consegui usando um javascript só, peguei do Blog do William Bruno e adaptei

ficou assim:

 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
                $("input[name='suggest']").keyup(function(){
                        createList('.suggest');
                        $.ajax({
                                type: "GET",
                                url: "function.php",
                                data: "parte="+$(this).val(),
                                success: function( data ){
                                        $("#suggest").html( data );
                                }
                        });
                });
                $("#suggest a").live('click', function( e ){
                        e.preventDefault();
                        var href = $(this).attr('href');
                        var id = href.split('=');
                        $("input[name='codigo']").val( id[1] );
                        $("input[name='suggest']").val( $(this).text() );
                        $("#suggest").remove();
                });
                $("#suggest").mouseout(function(){
                        $("#suggest").remove();
                });
        });
        function createList( el )
        {
                $("#suggest").remove();
                var list = document.createElement('ul');
                list.id = 'suggest';
                $( el ).append( list );
        }
</script>

 

form

<td>	<input name="codigo" type="text" size="5"/></td>
    <td>	<label class="suggest"><input type="text" name="suggest" /></label></td>

 

function

    <?php
    header("Content-Type: text/html; charset=ISO-8859-1");
    echo suggest( getGet('parte') );
    function suggest( $palavra )
    {
    $sql = "SELECT `id`, `cargo`, `codigo` FROM `cargos` ";
    if( !empty($palavra) )
    $sql .= "WHERE `cargo` LIKE '{$palavra}%'";
    $mysqli = new mysqli( 'localhost','root','','rhplus' );
    $query = $mysqli->query( $sql );
    if( $query->num_rows>0 )
    {
    $li='';
    while( $dados = $query->fetch_object() )
    $li .= '<li><a href="?id='.$dados->codigo.'">'.$dados->cargo.'</a></li>';
    }
    else
    $li = '';
    return $li;
    }
    function getGet( $campo ){
    return ( isset($_GET[ $campo ]) ) ? filter( $_GET[ $campo ] ) : null;
    }
    function filter( $var )
    {
    if(!get_magic_quotes_gpc() )
    $str = mysql_real_escape_string( $var );
    else
    $str = $var;
    $str = str_replace( '#', '\#', $str );
    return $str;
    }
	?>

 

 

vlw aos dois por terem me ajudado :yes:

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.