Problemas com auto complete
Pessoal, estou tentando fazer um campo com autocomplete. Porém, ele faz a consulta e até imprime no console, mas não mostra na tela, aparecem só as linhas aonde deveriam sair as informações. Alguém sabe como solucionar o problema???
Além disso, gostaria de setar o ID de cliente ao cadastrar,pode ser em um input hidden somente pra passar o valor para a servlet. Alguém sabe fazer?
JSP
<script type="text/javascript">
$(function() {
$("#cliente").autocomplete({
source : function(request, response) {
$.ajax({
url : "BuscarClienteServlet",
dataType : 'json',
data : request,
success : function(data) {
if (typeof Array.prototype.forEach != 'function') {
Array.prototype.forEach = function(callback) {
for (var i = 0; i < this.length; i++) {
callback.apply(this, [ this[i], i, this ]);
}
};
}
var values = data;
var newArray = new Array(values.length);
var i = 0;
values.forEach(function(entry) {
var newObject = {
label : entry.name
};
newArray[i] = newObject;
i++;
});
response(newArray);
}
});
},
minLength : 1
});
});
</script>
O CAMPO:
<div class="form-group">
<label class="col-md-2 control-label">*Cliente</label>
<div class="col-md-8">
<div class="input-group input-icon right">
<span class="input-group-addon"> <i class="fa"></i>
</span> <input class="form-control1" type="text"
placeholder="Cliente" name="cliente" id="cliente">
</div>
</div>
</div> BuscarClienteServlet
package classes.apresentacao.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import classes.persistencia.dao.ClienteDAO;
import classes.persistencia.dto.Cliente;
public class BuscarClienteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public BuscarClienteServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String text = request.getParameter("term");
ClienteDAO clienteDAO = new ClienteDAO();
try {
Cliente cliente1 = new Cliente();
cliente1.setNome(text);
ArrayList<Cliente> clientes = clienteDAO.buscarClienteLike(cliente1);
System.out.println(clientes.get(0).getNome());
for (Cliente cliente : clientes) {
System.out.println(cliente.getNome());
}
String searchResult = new Gson().toJson(clientes);
PrintWriter writer = response.getWriter();
writer.write(searchResult);
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
}
DAO
public ArrayList<Cliente> buscarClienteLike(Cliente cliente)
throws SQLException {
ArrayList<Cliente> clientes = new ArrayList<Cliente>();
PreparedStatement ps = null;
ResultSet rs = null;
ps = conexao
.obterConexao()
.prepareStatement(
"SELECT * FROM `banco_salao`.`cliente` c, `banco_salao`.`pessoa`p WHERE `c`.`pessoa_idPessoa` = `p`.`idPessoa` AND nome LIKE ?");
ps.setString(1, "%" + cliente.getNome() + "%");
rs = ps.executeQuery();
while (rs.next()) {
cliente.setIdCliente(rs.getInt("idCliente"));
cliente.setNome(rs.getString("nome"));
clientes.add(cliente);
}
conexao.fecharConexao();
return clientes;
}
}Discussão (1)
Carregando comentários...