Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mauricio Delajustine

[Resolvido] Select com ajax não funciona no IE

Recommended Posts

Boa noite pessoal.

Estou com o seguinte problema...

To precisando de um select que quando clico na opção desejada ele passe a informação para outra pagina, isso com ajax.

Fiz mas so esta funcionando no Firefox, no IE não esta rodando. Vou postar meu codigo se alguem puder ajudar ficaria grato.

post.js

// JavaScript Document
/*
1. frmNome - Nome do formulário
2. url - arquivo para onde será enviado o POST
3. destino (opcional) - conteiner para onde ira a resposta
vinda do arquivo "url"
*/
function enviaAjax(frmNome, url, destino){
f = document.getElementById(frmNome);
query="";
j=0;
for(i=0;i<f.elements.length;i++){
	if((f.elements[i].type=='radio' || f.elements[i].type=='checkbox' )&& !(f.elements[i].checked)){
		f.elements[i].value='';

		if(f.elements[i].value!=''){
			query += j==0 ? '' : '&';
			query += f.elements[i].name + '=' + f.elements[i].value;
			j++;
		}
	}
	else
	{
		query += j==0 ? '' : '&';
		query += f.elements[i].name + '=' + f.elements[i].value;
		j++;
	}
}
//chama a função postajax() para enviar os dados
//ao arquivo .php que fará o processamento
postajax(url, query, destino);
}

function postajax(url, query, destino){
   var status = false;
   var tipo_conteudo = "application/x-www-form-urlencoded; charset=UTF-8";

if(typeof destino !=='undefined')
	div_resposta = document.getElementById(destino);

   // Tenta criar objeto XMLHttpRequest NATIVO
   if (window.XMLHttpRequest) {
       requisicao = new XMLHttpRequest();
	requisicao.onreadystatechange=function(){
		if(requisicao.readyState==4){
			if(typeof destino !=='undefined'){
				//Aqui vai o processamento a ser feito
				//quando o arquivo .php retornar o resultado
				/*
					Recebe a resposta e coloca ela no conteiner
					pêgo pela variável "destino"
				*/
				texto=unescape(requisicao.responseText.replace(/\+/g," "));
				div_resposta.innerHTML=texto;
				div_resposta.style.visibility="visible";
				//exibe mensagem de sucesso na tela

			}
		}
	}
	//Abre a conexão
	requisicao.open("post", url, true);
	//Envia os cabeçalhos
	requisicao.setRequestHeader("Content-Type", tipo_conteudo);
	//Envia a requisicao
	requisicao.send(query);
	//Status da requisicao
	status = true;
   } //Senão, tenta criar objeto XMLHttpRequest ActiveX (Internet Explorer)
else if (window.ActiveXObject){
       requisicao = new ActiveXObject("Microsoft.XMLHTTP");
       if (requisicao){
           requisicao.onreadystatechange=function(){
			if(requisicao.readyState==4){
				if(typeof destino !='undefined'){
					//Aqui vai o processamento a ser feito
					//quando o arquivo .php retornar o resultado
					/*
						Recebe a resposta e coloca ela no conteiner
						pêgo pela variável "destino"
					*/
					texto=unescape(requisicao.responseText.replace(/\+/g," "));
					div_resposta.innerHTML=texto;
					div_resposta.style.visibility="visible";
					//exibe mensagem de sucesso na tela

				}
			}
		}
		//Abre a conexão
           requisicao.open("post", url, true);
		//Envia os cabeçalhos
           requisicao.setRequestHeader("Content-Type", tipo_conteudo);
		//Envia a requisicao
           requisicao.send(query);
		//Status da requisicao
           status = true;
       }
   }

   return status;
}

 

teste.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="javascript" src="js/post.js"></script>
</head>

<body>
<form id="login" name="login" method="post">
 <label>
   <select name="teste" id="teste">
     <option value="Teste " onClick="enviaAjax('login', 'recebeTeste.php', 'atualizaInclude');">Teste </option>
     <option value="Teste 2" onClick="enviaAjax('login', 'recebeTeste.php', 'atualizaInclude');">Teste 2</option>
   </select>
 </label>
</form>
<div id="atualizaInclude"></div>
</body>
</html>

recebeTeste.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php 
$teste = $_POST['teste'];
echo $teste;
?>
</body>
</html>

 

Bom ...

ja resolvi este problema...

 

usei o onchance no select

 

<select name="teste" id="teste" onchance="enviaAjax('login', 'recebeTeste.php', 'atualizaInclude');">

 

te mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.