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();
?>
Pergunta
Leandro Pontes
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)
Este trecho de código acima é o que contém as duas combos. O código abaixo é da pagina chamada pela função CARREGA_PACOTEPor favor me ajudem urgente.
Obrigado
Link para o comentário
Compartilhar em outros sites
2 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.