Consigo utilizar dois scripts Ajax no mesmo campo Input?
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
Discussão (6)
Carregando comentários...