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.
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?
Pergunta
andersoncaetano
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" />
<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
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.