Boa tarde pessoal,
Estou usando ajax para carregar uma tabela, so que quando eu tento recuperar um parametro para fazer a pesquisa, ele me retorna null, como eu devo fazer !!! Vou postar um pedaço do codigo.
else if(acao=='ListaDatas'){
for(i = 0; i < document.cadSolicitacao.fluxo.length; i++){
if(document.cadSolicitacao.fluxo[i].checked){
var fluxo = document.cadSolicitacao.fluxo[i].value;
mensagem(fluxo);
}
função que recupeara o valor clicado (estou usando input type=“radio” )
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
xmlhttp = new XMLHttpRequest();
}
function mensagem(fluxo){
var theUrl = "/WORKATIS2/ControllerRegistrarSolicitacao?action=listarDatas";
xmlhttp.open("GET", theUrl, true);
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4) {
ExibeMensagem(false);
criaAviso(xmlhttp.responseXML);
}else{
ExibeMensagem(true);
}
}
xmlhttp.send(null);
};
function ExibeMensagem(fluxo){
var DivRef = document.getElementById('MensagemAguarde');
if(fluxo){
alert("OK");
DivRef.style.display = "block";
}else{
alert("NOT OK");
DivRef.style.display = "none";
}
}
function criaAviso(ajaxResponse) {
alert("OK");
}
Aqui esta a função do Ajax.js
String fluxo = (String) request.getParameter("fluxoEscolhido");
Hashtable hash = new Hashtable();
Pedaco do .java
Quando ele passa pela variavel, ele nao encontra nenhum valor, isso pq eu nao estou passando um submit, como eu posso fazer com que ele pege o valor selecionado !!
valew
Nossa eu prefiro usar o prototype, ele faz esse trabalho sujo por você:
http://www.prototypejs.org/api/ajax
Onde na sua função dentro do for seria mais ou menos assim:
function suaFuncao(recebeu){
try {
alert(recebeu);
var urlc = 'SuaServlet';
var parsc = "par1="+yyy+"&par2=xxx";
var myAjaxc = new Ajax.Request(
urlc,
{
method: 'post',
parameters: parsc,
onSuccess: mostraMensagem
}
);
} catch(e) {
alert(e.message);
return;
}
}
Isso pode te ajudar muito:
http://www.sergiopereira.com/articles/prototype140.js.ptBR.html
T
Pedrosa,
[code]
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP”);
}catch(e){
try {
xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);
}catch(E){
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest != ‘undefined’) {
xmlhttp = new XMLHttpRequest();
}
function suaFuncao(recebeu){
try {
alert(recebeu);
var urlc = “/WORKATIS2/ControllerRegistrarSolicitacao?action=listarDatas”;
var parsc = “fluxo=”+fluxo+";
var myAjaxc = new Ajax.Request(
urlc,
{
method: ‘post’,
parameters: parsc,
onSuccess: mostraMensagem
}
);
} catch(e) {
alert(e.message);
return;
}
}
function ExibeMensagem(fluxo){
var DivRef = document.getElementById(‘MensagemAguarde’);
if(fluxo){
alert(“OK”);
DivRef.style.display = “block”;
}else{
alert(“NOT OK”);
DivRef.style.display = “none”;
}
}
function criaAviso(ajaxResponse) {
alert(“OK”);
}
[code]
Isso aqui estaria certo ??
eu so substitui a função, usei a sua.
Vou dar uma lida naquele materiall
Olha o seu for como ficaria:
Maneira antiga
for(i = 0; i < document.cadSolicitacao.fluxo.length; i++){
if(document.cadSolicitacao.fluxo[i].checked){
var fluxo = document.cadSolicitacao.fluxo[i].value;
mensagem(fluxo);
}
}
Maneira nobre
$$('input[type="checkbox"][name="fluxo"]').select(function(i){return i.checked}).each(function(i){mensagem(i.value)});
Obs você precisa adicionar a lib do prototype no seu projeto e fazer a chamada na pagina.
Toda essa tranqueira sai:
ar xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}
Conforme tinha falado a biblioteca faz essa parte!
Utilize a tag code para deixar o código formatado no forum, uma outra coisa que reparei agora não passe parametros na url note que eu uso com a variavel pars:
Onde você deveria ter algo assim:
function xpto(){
$$('input[type="checkbox"][name="fluxo"]').select(function(i){return i.checked}).each(function(i){mensagem(i.value)});
}
function mensagem(fluxo){
var url = 'ControllerRegistrarSolicitacao';
var pars = "fluxo="+fluxo+"&action=listarDatas";
var myAjax = new Ajax.Request(
url,
{
method: 'post',
parameters: pars,
onSuccess: outraFuncao
}
);
}
Como está o retorno da sua Servlet?
Entao Pedrosa,
Com relação ao codigo, eu apaguei sem querer e acabei nao vendo o que aconteceu, mas eu resolvi assim, passei a URL com o parametro e deu certo, ficou assim:
var theUrl = "/WORKATIS2/ControllerRegistrarSolicitacao?action=listarDatas&fluxoEscolhido="+fluxo;
Ai eu consigo passar o valor e recuperar via getParameter.
valew pela ajuda, vou ler o material que vc passou para aprender mais.