Ir para conteúdo
Fórum Script Brasil

Leandro Pontes

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Leandro Pontes postou

  1. Pessoal sou novo aki no fórum e a pouco tempo to programando em PHP. Estou tentando atualizar uma combo dinamicamente. Através do valor da da primeira combo, a segunda combo só aparecer os valores referente a primeira. Pesquisei em muitos sites mas ainda não consegui fazer funcionar, fiz o seguinte: Na minha form principal, na primeira combo, na opção onchange, chamo uma função em java script para poder carregar uma pagina PHP onde vou trazer os valores que quero colocar na segunda combo. Mas parece que a opção onchange não está funcionado, pois não está chamando a função. Vou colocar parte do código que escrevi, por favor me ajudem. FORM PRINCIPAL(onde estão os dois combos) <html> <head> <title>Cadastro de Contratos</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> function busca_pacotes(plano){ // Aqui indica o arquivo carrega_pacotes.php // passando o id do plano selecionado var url = "carrega_pacote.php?plano="+plano // Aqui o objeto que receberá os options // com os valores dos pacotes var obj = document.getElementById("pacote"); //Aqui começa a mágica do ajax var http_req = false; try{ http_req = new XMLHttpRequest(); }catch(e){ try{ http_req = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ http_req = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ alert("Sem XMLHttpRequest disponível!"); } } } var req = http_req; req.open("get",url,false); req.send(null); // Se o ajax retornou valores if(req.status==200){ try{ // joga os valores em result var result = eval(req.responseText); // Remove os options do select var iSize = obj.length; for(var i = 0; i<iSize; i++) obj.remove(1); // Aqui coloco obj.remove(1), porque não quero // que seja removido o 1 option(- cidades -), se // quisesse remover todos, colocaria obj.remove(0) for(i=0;i<result.length;i++){ // criando o option var opt = document.createElement("option"); opt.text = result[i].descricao; opt.value = result[i].pacote; // Atribuindo o option ao select cidades try { obj.add(opt,null); }catch(ex){ obj.add(opt,obj.length); } } }catch(e){}; } } //--> </script> </head> <form name="form1" method="post" action="<?php print $_SERVER["PHP_SELF"]; ?>?acao=cadastrar&id_cliente=<? echo $array_cliente['id_cliente'];?>"> <p><font face="Geneva, Arial, Helvetica, sans-serif">Codigo do Cliente: <input name="id_cliente" type="text" disabled="disabled" id="id_cliente" value="<? echo $array_cliente['id_cliente'];?>"> </font> </p> <p><font face="Geneva, Arial, Helvetica, sans-serif">Plano: <select name="plano" onchange="busca_pacotes(this.options[this.options.selectedIndex].value)"> <option value=""><< Selecione o Plano >></option> <? while($array = mysql_fetch_array($sql_planos)) { print "<option value=\"{$array["id_plano"]}\">{$array["descricao"]}</option>\n"; } mysql_free_result($sql_planos); ?> </select></font></font> </p> <p><font face="Geneva, Arial, Helvetica, sans-serif">Pacote: <select name="pacote"> <option><< Selecione o Pacote >></option> </select> </font></p> Este trecho de código acima é o que contém as duas combos. O código abaixo é da pagina chamada pela função CARREGA_PACOTE <?php include "conecta.php"; //Conecta com o banco de dados MySQL include "ver_sessao.php"; //Verifica se a sessão está ativa if($_REQUEST["plano"]){ if asda $sql_pcte = mysql_query("SELECT p.* FROM plano_pacote pp, pacotes p WHERE pp.id_plano = {$_REQUEST["plano"]} and pp.id_pacote = p.id_pacote") or die("ERRO no comando SQL:".mysql_error()); $cont = 0; while($pcte = mysql_fetch_array($sql_pcte)) { ## Aqui monta o resultado da busca no formado ## que o javascript entende para retornar ao ajax $pacotes .= ($cont==0? "" : ","). "{'id_pacote':'".$pcte["id_pacote"]."','descricao':'".$pcte["descricao"]."'}"; $cont++; } mysql_free_result($sql_pcte); ## E aqui printa o resultado no documento print "[$pacotes]"; } mysql_close(); ?> Por favor me ajudem urgente. Obrigado
×
×
  • Criar Novo...