Ir para conteúdo
Fórum Script Brasil
  • 0

Retorno de valor para <SELECT> não funciona no IE


andersoncaetano

Pergunta

Boa tarde amigos, preciso de uma ajudinha no que segue,

as páginas abaixo, não dão o retorno esperado para o Internet explorer, nos outro funciona normal.

ou seja ele não cria os capos <option> no select filho, seguem as páginas, a utilização é para outra coisa mais complexa, mas se me ajudarem a corrigir esse, eu já acerto os outros que trabalham com o banco de dados.

index.php -------------------------------------------------------------------------------

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

&lt;script type="text/javascript" src="funcoes_and.js"></script>

<title>Untitled Document</title>

</head>

<body>

<p>

<label for="principal">Seleciona o principal</label>

</p>

<p>

<select name="principal" id="principal" onchange="carregar(this.value,'resultados','tabela','coluna1','coluna2','mostra_resultado','campo_atual')">

<option value="1">1</option>

<option value="2">2</option>

<option value="3">3</option>

<option value="4">4</option>

<option value="5">5</option>

</select>

</p>

<p>

<label for="1">Mostra no resultados</label>

</p>

<p>

<select name="resultados" id="resultados">

</select>

</p>

</body>

</html>

funcoes.js --------------------------------------------------------------------------------

//JavaScript Document

//função para preencher automaticamte um id_de_campo.

//função para pegar o objeto ajax do navegador

function xmlhttp()

{

// XMLHttpRequest para firefox e outros navegadores

if (window.XMLHttpRequest)

{

return new XMLHttpRequest();

}

// ActiveXObject para navegadores microsoft

var versao = ['Microsoft.XMLHttp', 'Msxml2.XMLHttp', 'Msxml2.XMLHttp.6.0', 'Msxml2.XMLHttp.5.0', 'Msxml2.XMLHttp.4.0', 'Msxml2.XMLHttp.3.0','Msxml2.DOMDocument.3.0'];

for (var i = 0; i < versao.length; i++)

{

try

{

return new ActiveXObject(versao);

}

catch(e)

{

alert("Seu navegador não possui recursos para o uso do AJAX!");

}

} // fecha for

return null;

} // fecha função xmlhttp

//função para fazer a requisição da página que efetuará a consulta no DB

function carregar(campopai, campofilho, tabela, coluna1, coluna2, cod, campo_atual)

{

/*

campopai - campo que vai servir como opção

campofilho - campo que vai receber o resultado

tabela - tabela para pesquisa

coluna1 - coluna para pesquisa

coluna2 - segunda coluna para por condicão

cod - codigo de ação a ser tomada

campo_atual - valor do campo atual

alert ("campo pai " + campopai);

alert ("campo filho " + campofilho);

alert ("tabela " + tabela);

alert ("coluna1 "+ coluna1);

alert ("coluna2 "+ coluna2);

alert ("cod " + cod);

alert ("campo atual "+campo_atual);

*/

ajax = xmlhttp();

if (ajax)

{

ajax.open('get','processa.php?campopai=+campopai+'&campofilho='+campofilho+'&tabela='+tabela+'&coluna1='+coluna1+'&coluna2='+coluna2+'&cod='+cod+'&campo_atual='+campo_atual, true);

ajax.onreadystatechange = eval(campofilho);

ajax.send(null);

response.Charset = "utf-8";

response.ContentType = "text/html";

//alert ( ajax.onreadystatechange);

}

}

// função para listar resultados do retorno do ajax no campo resultados.

function resultados()

{

if (ajax.readyState==4)

{

if (ajax.status==200)

{

document.getElementById("resultados").innerHTML = ajax.responseText;

}

}

}

nessa função acima eu preciso criar uma funcao diferente para cada campo filho que vai receber o resultado, tem como fazer isso automaticamente com valores passados,

por exemplo: se eu tenho um campo que vai receber o resultado com o id xxxx eu preciso criar uma nova, se tem um campo que vai receber o resultado com o id yyyyyy eu preciso criar outra função com o mesmo sentido, não tem como trocar o nome automaticamente por um valor passado?

processa.php --------------------------------------------------------

<?php

//header( 'Cache-Control: no-cache' );

//header( 'Content-type: application/xml; charset="utf-8"', true );

// tabela para consulta

if (isset($_GET['tabela])){$tabela = $_GET['tabela'];}

//echo "<br>tabela ".$tabela;

// coluna para consulta

if (isset($_GET['coluna1'])){$coluna1 = $_GET['coluna1'];}

//echo "<br>coluna ".$coluna;

if (isset($_GET['coluna2'])){$coluna2 = $_GET['coluna2'];}

//echo "<br>coluna ".$coluna;

// campo que envio o filtro

if (isset($_GET['campopai'])){$campopai = $_GET['campopai'];}

//echo "<br>campopai ".$campopai;

// campo que recebe o filtro

if (isset($_GET['campofilho'])){$campofilho = $_GET['campofilho'];}

// echo "<br>campofilho ".$campofilho;

// cod para definir a açao

if (isset($_GET['cod'])){$cod = $_GET['cod'];}

// echo "<br>cod ".$cod;

// pega o valor do campo atual

if (isset($_GET['campo_atual'])){$campo_atual = $_GET['campo_atual'];}

// echo "<br>cod ".$cod;

//__________________________mostra_valor_______________________________________

if ($cod == "mostra_resultado"){

switch ($campopai) {

case $campopai == 1;

echo '<option value="1">Voce selecionou o numero 1</option>';

echo '<option value="1">Voce selecionou o numero 1</option>';

echo '<option value="1">Voce selecionou o numero 1</option>';

break;

case $campopai == 2;

echo '<option value="2">Voce selecionou o numero 2</option>';

echo '<option value="2">Voce selecionou o numero 2</option>';

echo '<option value="2">Voce selecionou o numero 2</option>';

echo '<option value="2">Voce selecionou o numero 2</option>';

break;

case $campopai == 3;

echo '<option value="3">Voce selecionou o numero 3</option>';

echo '<option value="3">Voce selecionou o numero 3</option>';

echo '<option value="3">Voce selecionou o numero 3</option>';

break;

case $campopai == 4;

echo '<option value="4">Voce selecionou o numero 4</option>';

echo '<option value="4">Voce selecionou o numero 4</option>';

echo '<option value="4">Voce selecionou o numero 4</option>';

break;

case $campopai == 5;

echo '<option value="5">Voce selecionou o numero 5</option>';

echo '<option value="5">Voce selecionou o numero 5</option>';

echo '<option value="5">Voce selecionou o numero 5</option>';

break;

}

}

?>

agradeço a todos pela ajuda.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...