[quote=thingol]%20 = espaço, %2C = vírgula
Veja se você não está usando algo como URLEncode ou coisa parecida no javascript que submete o form. Se for isso, você precisa reverter o processo para tratar o tal form.[/quote]
Acho que é isso mesmo, mas o que eu tenho que mudar ??
[code]
//INICIALIZA AS VARIAVEIS PARA CONTROLE DA FILA
var ifila = 0
var fila = new Array();
//fila[X][0] - Div onde sera carregada a pagina
//fila[X][1] - Pagina que sera chamada
//fila[X][2] - Metodo de envio
//fila[X][3] - Campos do form concatenados no padrao para serem enviados. Null caso seja um link
//INICIALIZA O OBJETO QUE IRA FAZER AS SOLICITACOES
try{
xmlhttp = new XMLHttpRequest();// Mozilla, Safari, Firefox, etc…
try {
if (xmlhttp.overrideMimeType) {
//Se poss?vel, ignora cabecalho usado pelo servidor e forca o padrao “text/xml”. Alguns navegadores exigem esse padrao e pode dar erro se o servidor nao utilizar ele
xmlhttp.overrideMimeType(‘text/html; charset=ISO-8859-1’);
}
} catch (e1) { }
}catch(e2){
try{
xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP”);// Internet Explorer
}catch(e3){
try{
xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);// Internet Explorer
}catch(e4){
//tratamento para alguma outra forma de implementar XMLHTTP
xmlhttp = false;
}
}
}
if (!xmlhttp){
//Nao conseguiu instanciar o objeto xmlhttp para fazer as solicitacoes
alert(“AJAX error. Your browser must support XMLHttpRequest object or enable use of scripting.”);
}
//GUARDA NA FILA O ID DO OBJETO E A URL QUE SERAO CARREGADOS PELO LINK CLICADO
function ajaxLink(id_target,url){
//Exibe mensagem de que esta carregando a pagina no objeto de ID informado
ajaxMensagemCarregando(id_target);
//Adiciona a solicitacao na fila
fila[fila.length]=[id_target,url,"GET",null];
//Se nao tem conexoes na fila, inicia a execucao
if(fila.length==1){
ajaxRun();
}
return;
}
//GUARDA NA FILA O ID DO OBJETO E O FORM QUE SERAO CARREGADOS PELO LINK CLICADO
function ajaxForm(id_target,id_form){
//Pega a pagina que sera chamada pelo form
var url = document.getElementById(id_form).action;
//Busca metodo de envio definido no form
var metodoEnvio = document.getElementById(id_form).method.toUpperCase();
//Busca os elementos do form que serao enviados para a pagina solicitada
var elementos_form = BuscaElementosForm(id_form);
//Exibe mensagem de que esta carregando a pagina no objeto de ID informado
ajaxMensagemCarregando(id_target);
//Adiciona a solicitacao na fila
fila[fila.length]=[id_target,url,metodoEnvio,elementos_form];
//Se nao tem conexoes na fila, inicia a execucao
if(fila.length==1){
ajaxRun();
}
return;
}
//EXECUTA A PROXIMA SOLICITACAO DA FILA
function ajaxRun(){
var url = fila[ifila][1];
//Define o metodo de envio (GET ou POST)
var metodoEnvio;
if (fila[ifila][3]==null){
//Se for Link, utiliza GET
metodoEnvio = "GET";
}else{
//Se for Form, define o metodo de envio e prepara a url
metodoEnvio = fila[ifila][2];
if (metodoEnvio=="" || metodoEnvio==null){
//Se nao tiver definido nada, usa POST
metodoEnvio = "POST";
}
if (metodoEnvio=="GET"){
//Metodo GET passa as informacoes na linha da url
url = url + "?" + fila[ifila][3];
}
}
//Abre a conexao
xmlhttp.open(metodoEnvio,url,true);
//Seta as funcoes que irao tratar a mudanca de estado do objeto XMLHTTP
xmlhttp.onreadystatechange=ajaxXMLHTTP_StateChange;
//Executa a solicitacao
if (metodoEnvio=="POST"){
//Metodo POST precisa definir este RequestHeader
xmlhttp.setRequestHeader('Content-Type=text/html; charset=ISO-8859-1', 'application/x-www-form-urlencoded');
//Metodo POST passa as variaveis pelo metodo Send
xmlhttp.send(fila[ifila][3]);
}else{
xmlhttp.send(null);
}
return;
}
//FUNCAO EXECUTADA QUANDO ALTERAR O STATUS DA SOLICITACAO (readyState)
function ajaxXMLHTTP_StateChange() {
//0-Nao inicializado, 1-Carregando, 2-Carregado, 3-Interativo, 4-Completo
if (xmlhttp.readyState==1){
ajaxXMLHTTP_StateChange_Carregando(fila[ifila][0]);//Quando iniciar a solicitacao
}else{
if (xmlhttp.readyState==4){
ajaxXMLHTTP_StateChange_Completo(xmlhttp, fila[ifila][0]);//Quando estiver completa a solicitacao
}
}
}
//FUNCAO PARA PEGAR OS ELEMENTOS DO FORM
function BuscaElementosForm(idForm) {
var elementosFormulario = document.getElementById(idForm).elements;
var qtdElementos = elementosFormulario.length;
var queryString = "";
var elemento;
//Cria uma funcao interna para concatenar os elementos do form
this.ConcatenaElemento = function(nome,valor) {
if (queryString.length>0) {
queryString += "&";
}
queryString += encodeURIComponent(nome) + "=" + encodeURIComponent(valor);
};
//Loop para percorrer todos os elementos
for (var i=0; i<qtdElementos; i++) {
//Pega o elemento
elemento = elementosFormulario[i];
if (!elemento.disabled) {
//Trabalha com o elemento caso ele nao esteja desabilitado
switch(elemento.type) {
//Realiza a acao dependendo do tipo de elemento
case 'text': case 'password': case 'hidden': case 'textarea':
this.ConcatenaElemento(elemento.name,escape(elemento.value));
break;
case 'select-one':
if (elemento.selectedIndex>=0) {
this.ConcatenaElemento(elemento.name,escape(elemento.options[elemento.selectedIndex].value));
}
break;
case 'select-multiple':
for (var j=0; j<elemento.options.length; j++) {
if (elemento.options[j].selected) {
this.ConcatenaElemento(elemento.name,escape(elemento.options[j].value));
}
}
break;
case 'checkbox': case 'radio':
if (elemento.checked) {
this.ConcatenaElemento(elemento.name,escape(elemento.value));
}
break;
}
}
}
return queryString;
}
[/code]>