Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, boa noite.
Estou usando um autocomplete que funciona perfeitamente, é bem simples e funcional. Mas estou querendo fazer uma modificação.
Quando eu digito o nome para buscar, mostrar normalmente, até conseguir mostrar o id junto com o nome.
Mas, estou querendo separar o id com o nome, ou seja, quando eu buscar um nome e clicar neste nome para inserir, gostaria que o id e o nome fosse inseridos em campos diferentes.
Vou deixar o código abaixo, e agradeço desde já se alguém puder me ajudar.
Este é onde busca no banco de dados
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="busca"; // Database name
$con = mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db($db_name, $con) or die(mysql_error());
$q = strtolower($_GET["q"]);
if (!$q) return;
$sql = "select DISTINCT nome from usuarios where nome LIKE '%$q%'";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
$cname = $rs['nome'];
echo "$cname\n";
}
?>
Este insere no campo
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>jQuery Autocomplete Plugin</title>
<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script type='text/javascript' src="js/jquery.autocomplete.js"></script>
<link rel="stylesheet" type="text/css" href="js/jquery.autocomplete.css" />
<script type="text/javascript">
$().ready(function() {
$("#course").autocomplete("autoComplete.php", {
width: 260,
matchContains: true,
//mustMatch: true,
//minChars: 0,
//multiple: true,
//highlight: false,
//multipleSeparator: ",",
selectFirst: false
});
});
</script>
</head>
<body>
<h2>Autocomplete usando jQuery, Ajax, PHP</h1>
<div id="content">
<form autocomplete="off">
<p>
Digite um nome:
<input type="text" name="course" id="course" />
</p>
</form>
</div>
</body>
</html>Veja se a leitura te ajuda:
https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax
>
5 horas atrás, Pita disse:
Cara, acredito que talvez você precise trabalhar com os dados no formato JSON(para sua página PHP retornar o ID e o texto) e o evento select para pegar estar informações sejam inseridas em campos diferentes.
Olha um exemplo no próprio site
[https://jqueryui.com/autocomplete/#remote-jsonp](https://jqueryui.com/autocomplete/#remote-jsonp)
Olá, mas ele faz o retorno do id e nome. Só que não estou conseguindo separá-lo. Ele fica junto com o nome. Ou seja, preciso que o id vai para um campo e nome para outro campo>
1 hora atrás, gabrieldarezzo disse:
Veja se a leitura te ajuda:
https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax
Show de bola este código, já implante para buscar o endereço pelo cep no sistema.
Como meu conhecimento é melhor e php, não conseguir fazer que seu código buscasse no mysql.
Olhou a parte do Debug?
https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax#5---acompanhar-oq-foi-enviado
O que a aba Preview/Response informa?
Os erros do php estão habilitados?
Oi pessoal. Boa tarde.
Vou ser sincero, já modifiquei, criei um novo. Fiz várias mudanças e não conseguir este json. Bisquei na internet e vi que tem alguns com este json. Mas não conseguir. olha um código. É isso que vocês estão tentando me dizer.
$(function(){
$("#nome" ).autocomplete({source:'autoComplete.php',
select: function( event, ui ){
$("#id").val(ui.item.codigo);
}});
});
$db['host'] = "localhost";
$db['nome'] = "bd";
$db['user'] = "root";
$db['pass'] = "";
mysql_connect($db['host'], $db['user'], $db['pass']);
mysql_select_db($db['nome']);
$req = "SELECT * FROM coperados WHERE co_nome LIKE '%".$_REQUEST['term']."% ORDER BY co_nome ASC";
$query = mysql_query($req);
while($row = mysql_fetch_array($query))
{
$results[] = array('label' => $row['nome'],'id'=>$row['id']);
}
echo json_encode($results);Galera, acredito que estou quase chegando lá. peço uma forcinha ae. Olha o código abaixo:
Peguei este código na web que funciona no demo. Mas coloquei para funcionar, somente busca o nome, mas não busca o id.
Este é o index.php
<html>
<head>
</head>
<body>
<div class="ui-widget">
<label for="coperados">Skills: </label>
<input id="coperados">
<input id="co_id">
</div>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(function(){
$("#coperados" ).autocomplete({
source:'autoComplete.php',
select: function( event, ui ){
$("#co_id").val(ui.item.codigo);
}});
});
</script>
</body>
</html>
Este é o do banco de dados. autoComplete.php
<?php
//database configuration
$dbHost = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'dksitesistema_cooperwtour';
//connect with the database
$db = new mysqli($dbHost,$dbUsername,$dbPassword,$dbName);
//get search term
$searchTerm = $_GET['term'];
//get matched data from skills table
$query = $db->query("SELECT * FROM coperados WHERE co_nome LIKE '%".$searchTerm."%' ORDER BY co_nome ASC");
while ($row = $query->fetch_assoc()) {
//$data[] = $row['co_nome'];
$data[] = array('label' => $row['co_nome'], 'co_id'=>$row['co_id']);
}
//return json data
echo json_encode($data);
?>Ai galera, bom dia.
Conseguir resolver o problema, era somente mudar o nome do campo label.
$data[] = array('label' => $row['co_nome'], 'co_id'=>$row['co_id']);
Agradeço desde já vocês que me ajudaram. Mas eu não soube fechar o tópipo com resolvido.