Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como eu posso colocar uma imagem dentro de um array, para que a apareça também no auto-complete?
jquery
$(document).ready(function() {
$("#produtos").typeahead({
source: function(b, a) {
$.ajax({
url: "fetch.php",
method: "POST",
data: {
query: b
},
dataType: "json",
success: function(c) {
a($.map(c, function(d) {
return d
}))
}
})
}
})
});
fetch.php
$query2 = "
SELECT * FROM fotos_produtos WHERE id_produto='".$row['id']."'
";
$result2 = mysqli_query($connect, $query2);
if(mysqli_num_rows($result2) > 0)
{
while($row2 = mysqli_fetch_assoc($result2))
{
$data[] = $row["nome"]."<img src=uploads/".$row2["nome"]."/>";
}
echo json_encode($data);
}
Resultado quando procura algum produto
PRODUTO 21<IMG SRC=UPLOADS/PRODUTO21.JPG/>
Teria que aparecer a imagem e não em modo texto como está no resultado, teria como?retorna
PRODUTO21 <IMG SRC='UPLOADS/PRODUTO21.JPG'>
teria que aparecer a imagemQual o HTML que ele retorna?
Teria como colar ele aqui?
eu andei pesquisando e estou usando o propend() do jquery, ele procura e acha o que digito na busca, mais não mostra na div #resultado. e retorna esses erros quando digito algo:
VM1199:1 Uncaught SyntaxError: Unexpected token c in JSON at position 0
at JSON.parse (<anonymous>)
at Object.success ((index):803)
at j (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at x (jquery.min.js:4)
at XMLHttpRequest.b (jquery.min.js:4)
$(document).ready(function() {
$("#country").typeahead({
source: function(b, a) {
$.ajax({
url: "fetch.php",
method: "POST",
data: {
query: b
},
dataType: "json",
success: function(c) {
console.log(c);
var json = JSON.parse(c);
$.each(json, function(i, data) { $("#country").prepend(data); } );
}
})
}
})
});Pelo erro, parece que está dando erro no momento do "JSON.parse(c)"
Dá uma olhada no valor da variável "c" no momento do parse para ver o que o PHP está retornando.
Acho que o PHP pode não estar retornando um valor válido?
estou fazendo assim, agora não retorna nenhum erro só que o resultado não aparece na div resultado, aparece apenas no console().
$(document).ready(function() {
$("#resultado").typeahead({
source: function(b, a) {
$.ajax({
url: "fetch.php",
method: "POST",
data: {
query: b
},
dataType: "json",
success: function(c) {
console.log(c);
$.each(c, function(i, data) {
$("#resultado").prepend(data);
});
}
})
}
})
});Esse plugin tem uma opção
dataset.templates.suggestion onde você pode colocar o HTML que quiser.
você vai receber o JSON do backend, e ai você faz como precisar a sua imagem.
como eu poderia adptar o dataset.templates.suggestion no meu jquery?
// JSON: [{nome: "Bob", img: "aa.jpg"}]
$('input').typeahead(null, {
display: 'nome',
source: source,
templates: {
empty: '<div>Nenhum resultado</div>',
suggestion: Handlebars.compile('<div><strong>{{nome}}</strong> – <img src="{{img}}" /></div>')
}
});como faria para adptar seu código no meu que postei?
$("#resultado").typeahead({
source: function(b, a) {
$.ajax({
url: "fetch.php",
method: "POST",
data: {
query: b
},
dataType: "json",
success: function(c) {
a($.map(c, function(d) {
return d
}))
}
})
}
})
});
Isso é problema com o PHP,
mas dá uma olhada para ver se assim ajuda:
$data[] = "<img src='uploads/".$row2["nome"]."'>";