de todas as informações que já li aqui nenhuma funciona no meu caso provavelmente esteja fazendo caquinhas aki mas preciso de ajuda,
nesse mesmo formulario preciso recuperar 3 campos e passar para essa url abaixo, cmo posso fazer isso
function abreDetalhes() {
$.ajax({
url : "/RelatorioNC/pesquisaSos",
type : "POST",
data: $("#formulario").serialize(),
success : function(result) {
if (result.isValid) {
$("#div1").html(result); //Receber tabela carregada na PesquisaPedidos
$("#dialog").dialog("open"); //Abre caixa de dialogo Jquery
} else {
$("#dialogErro").dialog("open"); //Abre caixa de dialogo Jquery
}
}
});
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
objPesquisa = new BeanPesquisaSos();
objPesquisa.setsSetor(request.getParameter("setor"));
objPesquisa.setsDataInicial(request.getParameter("dtaInicio"));
objPesquisa.setsDataFinal(request.getParameter("dtaFim"));
objPesquisa.setsSetor(request.getParameter("pesquisa"));
Caso seu Controller estiver aguardando os dados do formulário, será necessário incluir esta linha “data: $(”#form_relatorio ").serialize(),". Supondo que o nome do formulário seja “form_relatorio”, segue o exemplo abaixo:
$.ajax({
url : '/RelatorioNC/pesquisaSos?acao=result',
type:'POST',
data: $("#form_relatorio").serialize(),
success : function(result)
{
$("#div1").html(result); //Receber tabela carregada na PesquisaPedidos
$("#dialog").dialog("open"); //Abre caixa de dialogo Jquery
}
}
});
<form action="/RelatorioNC/pesquisaSos" method="post" id="pesquisa" name="pesquisa">
eu ja tinha tentado isso
function abreDetalhes() {
$.ajax({
url : "/RelatorioNC/pesquisaSos?acao=result",
type : "POST",
data: $("#pesquisa").serialize,
success : function(result) {
if (result.isValid) {
$("#div1").html(result); //Receber tabela carregada na PesquisaPedidos
$("#dialog").dialog("open"); //Abre caixa de dialogo Jquery
} else {
$("#dialogErro").dialog("open"); //Abre caixa de dialogo Jquery
}
}
});
}
mas no meu servlet continuo recebendo null
no request.getParametrs eu continho usando o mesmo name do formulario?
Por gentileza, envia os campos no formulário “HTML” e o pedaço da
Servlet que recebe a requisição.
String acao = request.getParameter("acao");
if ("result".contains(acao)) {
try {
objPesquisa = new BeanPesquisaSos();
objPesquisa.setsSetor(request.getParameter("setor"));
objPesquisa.setsDataInicial(request.getParameter("dtaInicio"));
objPesquisa.setsDataFinal(request.getParameter("dtaFim"));
objPesquisa.setsSetor(request.getParameter("pesquisa"));
TipoPesquisa tipoPesquisa = TipoPesquisa.getTipoPesquisa(objPesquisa.getsSetor());
listaSos = relatorioCliente.listaCompletaSos(objPesquisa,tipoPesquisa);
request.setAttribute("listaSos", listaSos);
<form action="/RelatorioNC/pesquisaSos" method="post" id="pesquisa" name="pesquisa">
<table width="700" height="132" align="center">
<td width="12" height="82" align="left"> </td>
<td width="248">Setor:
<div class="styled-select">
<div class="campo">
<select style="width: 200px" name="cmbSetor" size="1">
<option>Selecione...</option>
<option value=1>------------- TODOS SETORES ----------</option>
<c:forEach var="setores" items="${listaSetores}">
<option value="${setores.sSetores}">${setores.sSetores} - ${setores.sNome}</option>
</c:forEach>
</select>
</div>
</div>
</td>
<td height="82" align="right"> </td>
<td>Data Inicio:
<div class="campo">
<input type="date" id="dtaIni" name="dtaInicio" size="25">
</div>
</td>
<td align="right"> </td>
<td>Data Final:
<div class="campo">
<input type="date" id="dtaFim" name="dtaFim">
</div>
</td>
<td> <a href="javascript:abreDetalhes()"><img src="imagens/pesquisa.png" width="40" height="40"></a> </td>
</table>
</form>
Douglas_Dias:
acao
O Campo “acao”, não está entre as tags “form”, na Servlet você está utilizando o método “POST” ou “GET” ?
na servlet estou usando método POST
String acao = request.getParameter(“acao”); esse que vc está falando?
Douglas_Dias:
acao
“acao” é um campo do formulário ? se for, ele não está entre as tags “form”
esse campo acao estou passando na URL
url : “/RelatorioNC/pesquisaSos?acao=result”,
Douglas_Dias:
result
Inclui este campo como Hidden ou muda sua lógica para GET.
como faço para incluir como Hidden?
mais os métodos GET está dessa forma, varia alguma diferença?
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
this.doPost(request, response);
}
[code]
[/code]
Ou no Ajax você altera para GET.
Fique atento como você envia os seus dados, ou através de POST ou GET.
retirei deixei dessa forma url : “/RelatorioNC/pesquisaSos”,
não preciso do result ppor agora
mas mesmo dessa forma os request.getParametrs estão null
Você incluiu
<form action="/RelatorioNC/pesquisaSos" method="post" id="pesquisa" name="pesquisa">
<input type='hidden' id='acao' name='acao' value='result' />
No Ajax
data: $("#formulario").serialize()
Alterei do jeito que informou edita a pergunta
nenhum dado retornou
Como você está enviado os dados para o formulário ?
Coloque um alerta no seu formulário para verificar o que está retornando.
vou explicar: eu tenho um formulário que contém três campos
um select
e dois input
eu não estou conseguindo é mandar essas informações para o servlet atraves do ajax
o retorno está certo, mas não está retornando nada por que não consigo fazer o select no campos por que os campos do formularios estão vindo null
eu faço o retorno dessa forma:
listaSos = relatorioCliente.listaCompletaSos(objPesquisa,tipoPesquisa);
request.setAttribute("listaSos", listaSos);
html = new StringBuilder();
html.append("<table id=\"t01\" width=\"750\" align=\"center\">").append("\r\n");
html.append("<tr align=\"center\" bgcolor=\"#F58634\">").append("\r\n");
html.append("<th>SOLIC</th>").append("\r\n");
html.append("<th>SETOR</th>").append("\r\n");
html.append("<th>ROTINA</th>").append("\r\n");
html.append("<th>DATA_DE_ABERTURA</th>").append("\r\n");
html.append("<th>HORA_DE_ABERTURA</th>").append("\r\n");
html.append("<th>PRAZO_DATA_ORIGINAL</th>").append("\r\n");
html.append("<th>PRAZO_HORA_ORIGINAL</th>").append("\r\n");
html.append("<th>DATA_DE_ENCERRAMENTO</th>").append("\r\n");
html.append("<th>HORA_DE_ENCERRAMENTO</th>").append("\r\n");
html.append("<th>RESPONSAVEL</th>").append("\r\n");
html.append("</tr>").append("\r\n");
for (RelatorioPesquisaSos itensSOS : listaSos) {
html.append("<tr>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsSolic() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsSetor() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsRotina() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsDataAbertura() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsHoraAbertura() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsPrazoDataOriginal() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsPrazoHoraOriginal() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsDataEncerramento() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsHoraEncerramento() +"</td>").append("\r\n");
html.append("<td align=\"left\">" + itensSOS.getsResponsavel() +"</td>").append("\r\n");
html.append("</tr>").append("\r\n");
}
html.append("</table>").append("\r\n");
response.setContentType("text/html");
response.getWriter().write(html.toString());
return;
eu até fiz uma validação no ajax para tratar o retorno:
if (result.isValid) {
$("#div1 ").html(result); //Receber tabela carregada na PesquisaPedidos
$("#dialog ").dialog(“open”); //Abre caixa de dialogo Jquery
} else {
$("#dialogErro ").dialog(“open”); //Abre caixa de dialogo Jquery
}
Douglas_Dias:
tipoPesquisa
Quais são os campos que estão chegando no Servlet ?
Confere campo a campo e garanta que estão entre as tags “form”
todos eles estão dentro do form
nenhum dos campos estão chegando
eu li que como estou passando via ajax deveria passar os parametros via ajax também isso procede