Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal!
Tenho esse código aqui que gera um autocomplete que peguei na net e adaptei porém onde aparece o resulta da busca ele só mostra os
nomes eu gostaria que aperecesse também o id com um link que ao ser clicado direciona para uma outra página.
está assim:
$json .= '{"value":"'.$row['nome'].'"}';
gostaria que ficasse assim:
<a href="ver_estabelecimento.php?id=<? echo $row["id"];?>" ><? echo $row["nome"];?>" ></a>
Segue o codigo fonte:
<?php
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT nome FROM estabelecimentos WHERE nome LIKE '%$text%' ORDER BY nome ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['nome'].'"}';
}
$json .= ']';
echo $json;
?>
Desde já agardeço a ajuda!!
Evitar de o cliente clicar em um botão! selecione o link e via get chamar uma outra página.
Tente assim :P
<?php
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT nome FROM estabelecimentos WHERE nome LIKE '%$text%' ORDER BY nome ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['nome'].'"}';
}
$json .= ']';
echo $json;
echo "<a href=\"ver_estabelecimento.php?id=$id$nome\">teste</a>";
?>Não funcionou! Agora não aparece nada!!
Autocomplete não é para fazer isso, amigo. É, como o próprio nome diz, um recurso para ajudar o usuário a digitar uma palavra-chave no campo de busca. Os links só devem aparecer mesmo na página de resultados da busca. Parece que o que você está querendo é transformar esse script de autocomplete em um Instant Search, como o Google Instant.
Isso é possível, mas você terá que fazer algumas alterações:
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT id,nome FROM estabelecimentos WHERE nome LIKE '%$text%' ORDER BY nome ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['nome'].'", '.'"id":"'.$row['id']'".}';
}
$json .= ']';
echo $json;
Você deve criar um elemento lista para exibir os resultados da busca:
<ul id="resultados">
</ul>
Por fim, deve alterar o javascript para alimentar ul#resultados com os resultados da busca.
Fica difícil saber sem ver o seu código Javascript (jQuery). Mas seria mais ou menos assim:
$.getJSON('autocomplete.php', function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + '<a href="ver_estabelecimento.php?id='+val.id+'">'+val.nome+ '</a></li>');
});
$('#resultados').append(items.join(''));
});
Estou presumindo que o código que você deu está no arquivo "autocomplete.php".
<?php
$text = $mysqli->real_escape_string($_GET['term']);
$query = "SELECT nome FROM estabelecimentos WHERE nome LIKE '%$text%' ORDER BY nome ASC";
$result = $mysqli->query($query);
$first = true;
while($row = $result->fetch_assoc())
{
$json = "<a href=\"ver_estabelecimento.php?id=$row[\"id\"]\">">$row[\"nome\"]</a>";
}
echo $json;
?>
qual a logica de utilizar em link no auto complete ?