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

Habilitar/ Desabilitar Select


Tatiana Carrazzoni

Pergunta

Tenho dois selects num fomurlário, um categoria e outro subcategoria.

O campo subcategoria vai estar desabilitado até que selecione uma categoria.

Depois de selecionar uma categoria, habilitar o select de subcategoria, carregando apenas as subcategorias relacionadas a categoria selecionada.

Os dados estão no banco de dados, e as páginas são em php.

A tabela categoria tem o seguintes campos: id, nome

A tabela subcategoria tem o seguintes campos: id_sub, nome, nome_sub (o campo nome vem da tabela categoria).

Espero que alguém me ajude!!

:mellow:

Editado por Tatiana Carrazzoni
Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

Oi Tatiana, tudo bom?

Olha só, eu dei uma pesquisada na net sobre o disable, mas não achei como fazer para desabilitar inicialmente por html, o que seria o ideal.

Mas eu fiz um scriptzinho de demonstração pra te mostrar o que deve fazer:

<script>
window.onload=function(){
 document.getElementById("SubCategoria").disabled=true

 document.getElementById("Categoria").onchange=function(){
 document.getElementById("SubCategoria").disabled=false
 if(this.selectedIndex==0) return document.getElementById("SubCategoria").disabled=true
 }

}
</script>




<form>
<select id="Categoria">
  <option>---Escolha---</option>
  <option>Nike</option>
  <option>Fila</option>
  <option>Rainha</option>
</select>

<select id="SubCategoria">
  <option>---Escolha---</option>
  <option>Branco</option>
  <option>Preto</option>
  <option>Azul</option>
</select>
</form>

Ela é bem simples, ao termino do carregamento da página o javascript vai desabilitar a "SubCategoria" só habilitando quando for escolhido uma opção válida no primeiro select. Entende-se por opção válida qualquer uma que não seja a opção "---Escolha---".

Existem outras formas de fazer, mas para o que precisa imagino que seja suficiente. você poderia esconder com "hidden" ou mesmo fazer por ajax, mas ae já complica um pouco.

Kelabrasssss

Editado por KaKarotto
Link para o comentário
Compartilhar em outros sites

  • 0

ESerra,

Desculpa, mas n consegui fazer esse codigo funcionar no meu script.

Ele deu erro e n carrega nem as categorias nem as subcategorias.

ai vai o meu código

adsd.php

&lt;script type="text/javascript">

function habilita()

{

var form1 = document.form1;

if (form1.categoria.select){ //Se o checkbox estiver marcado,

form1.subcategoria.disabled = false; //habilita o campo

form1.subcategoria.focus(); //e dá o foco.

}

else{ //Se não,

form1.subcategoria.disabled = true; //desabilita o campo

form1.subcategoria.value=''; //e limpa conteúdo.

}

}

</script>

<?

$sql = mysql_query("SELECT * FROM {$prefixo}categorias ORDER BY nome") or die(erro(mysql_error()));

$contar = mysql_num_rows($sql);

if($contar < 1) {

echo "<center>Adicione pelo menos uma categoria.<br>";

echo "<center><strong><a href=\"java script:div('add_cat')\">Clique Aqui</a></strong> para adicionar uma.<br></center>";

?>

<div id="add_cat" style="display: none" align="center">

<hr align="center">

<form method="POST" action="admin.php?acao=ad&add=sim">

Nome da categoria:<br>

<input name="nome" type="text" value="<?php echo $nome; ?>" size="20">

<br>

<br>

<input name="cadastrar" type="submit" id="cadastrar" value="Cadastrar">

</p>

</form>

</div>

<?

}else{//aberto

$cadastrar = $_GET["cadastrar"];

if($cadastrar == "download") {

$nome = $_POST["nome"];

$descricao = $_POST["descricao"];

$cliques = 0;

$categoria = $_REQUEST["categoria"];

$subcategoria = $_REQUEST["subcategoria"];

$autor_script = $_POST["autor"];

$versao_script = $_POST["versao"];

$reportado = "";

$arquivo = $_FILES["arquivo"]["name"];

$sql = mysql_query("SELECT * FROM {$prefixo}downloads WHERE nome = '".$nome."'") or die(erro(mysql_error()));

$contar = mysql_num_rows($sql);

if($contar > 0) {

$erro.= "Já existe um download com este mesmo nome.<br>";

}

if($nome == "") {

$erro.= "Digite o nome do download.<br>";

}

if($descricao == "") {

$erro.= "Digite a descrição do download.<br>";

}

if($subcategoria == "selecione") {

$erro.= "Você precisa selecionar uma subcategoria.<br>";

}

if($categoria == "selecione") {

$erro.= "Você precisa selecionar uma categoria.<br>";

}

if($autor_script == "") {

$erro.= "Você precisa digitar o autor do download.<br>";

}

if($versao_script == "") {

$erro.= "Você precisa digitar a versão do download.<br>";

}

if($arquivo == "") {

$erro.= "Você precisa colocar algum arquivo para download.<br>";

}

if($erro == "") {

$name = $_FILES['arquivo']['name'];

$nome_tmp = $_FILES['arquivo']['tmp_name'];

$dir = "../downloads/$name";

$upload = move_uploaded_file($nome_tmp, $dir);

if($upload){

$novo = "../downloads/".base64_encode(time()).".".substr($name, -3);

rename($dir, $novo);

}

$cadastrar = mysql_query("INSERT INTO {$prefixo}downloads (nome, data_criacao, arquivo, descricao, cliques, categoria, subcategoria, autor, versao, reportado) VALUES ('$nome', NOW(), '$novo', '$descricao', '$cliques', '$categoria', '$subcategoria', '$autor_script', '$versao_script', '$reportado')", $db) or die(erro(mysql_error()));

if($cadastrar) {

echo "Download cadastrado com sucesso.<hr>";

}else{

echo "Não foi possível cadastrar o download.<hr>";

}

}//fecha if erro

else{

echo"

<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"4\" bgcolor=\"#D8E1F3\" class=\"css\">

<tr>

<td bgcolor=\"#ACBFE6\" class=\"ft10 s1\"><font color=\"#FFFFFF\"><img src=\"../imagens/erro.gif\" width=\"13\" height=\"13\"> </font><strong>Ocorreram os seguintes erros:</strong></td>

</tr>

<tr>

<td><font color=\"#FF0000\">".$erro."</font><br />

</span></td>

</tr>

</table>";

}

}//fecha cadastro

?>

<table width=322">

<form action="admin.php?acao=adsd&cadastrar=download" method="POST" enctype="multipart/form-data" name="form1" id="form1">

<tr><td width="314">Nome:</td></tr>

<tr><td><input name="nome" type="text" value="<?php echo $nome; ?>" size="20"></td></tr>

<tr><td>Arquivo:</td></tr>

<tr><td><input type="file" name="arquivo" /></td></tr>

<tr><td>Categoria:</td></tr>

<tr><td><select name="categoria" onchange="habilita();">

<?

$sql2 = mysql_query("SELECT * FROM {$prefixo}categorias ORDER BY nome") or die(erro(mysql_error()));

echo "<option value=\"selecione\">Selecione uma categoria:</option>\n";

while($c = mysql_fetch_array($sql2)) {

echo "<option value=\"".$c[id]."\">|.".$c[nome]."</option>\n";

}

?>

</select>

</td></tr>

<tr>

<td>Subcategoria:</td>

</tr>

<tr>

<td>

<?

$categoria = $_POST['categoria];

if($categoria==""){

echo '<select disabled="false" name="subcategoria"><option value="0">Selecione</option></select>';

}

else

{

$query = "SELECT * FROM {$prefixo}subcategoria WHERE id=".$categoria."ORDER BY nome_sub";

$result = mysql_query($query);

echo '<select name="subcategoria">';

while($row = mysql_fetch_row($result)){

echo '<option value="'.$row["id_sub"].'">'.$row["nome_sub"].'</option>';

}

}

?></td>

</tr>

<tr><td>Autor:</td></tr>

<tr><td><input name="autor" type="text" id="autor" value="<?php echo $autor_script; ?>" size="20"></td></tr>

<tr><td>Versão:</td></tr>

<tr><td><input name="versao" type="text" id="versao" value="<?php echo $versao_script; ?>" size="20"></td></tr>

<tr><td>Descrição:</td></tr>

<tr><td><textarea rows="5" name="descricao" cols="40"><?php echo $descricao; ?></textarea></td></tr>

<tr>

<td> </td>

</tr>

<tr><td> <input name="cadastrar" type="submit" id="cadastrar" value="Cadastrar"></td></tr>

</form>

</table>

<?

}

?>

Espero que entendam e possam me ajudar!!

vlw..

Editado por Tatiana Carrazzoni
Link para o comentário
Compartilhar em outros sites

  • 0

vou postar o código...

pois modifiquei algumas coisas...

adsd.php

<script>

loc = new Array(<?=mysql_num_rows($sql)?>)

for (i=0; i < <?=mysql_num_rows($sql)?>; i++) {

loc= new Array(2)

for (j=0; j < 2; j++) {

loc[j] = "0"

}

}

<? $j = 0;

while ($linha = mysql_fetch_array($sql)) {?>

loc[<?=$j?>][0] = "<?=$linha[0]?>";

loc[<?=$j?>][1] = "<?=$linha[0]?>";

<? $j++;

}

?>

parent.inicia();

</script>

<?

$sql = mysql_query("SELECT * FROM {$prefixo}categorias ORDER BY nome ASC") or die(erro(mysql_error()));

$contar = mysql_num_rows($sql);

if($contar < 1) {

echo "<center>Adicione pelo menos uma categoria.<br>";

echo "<center><strong><a href=\"java script:div('add_cat')\">Clique Aqui</a></strong> para adicionar uma.<br></center>";

?>

<div id=add_cat" style="display: none" align="center">

<hr align="center">

<form method="POST" action="admin.php?acao=ad&amp;add=sim">

Nome da categoria:<br>

<input name="nome" type="text" value="<?php echo $nome; ?>" size="20">

<br>

<br>

<input name="cadastrar" type="submit" id="cadastrar" value="Cadastrar">

</p>

</form>

</div>

<?

}else{

$cadastrar = $_GET["cadastrar];

if($cadastrar == "download") {

$nome = $_POST["nome"];

$descricao = $_POST["descricao"];

$cliques = 0;

$categoria = $_REQUEST["categoria"];

$subcategoria = $_REQUEST["subcategoria"];

$autor_script = $_POST["autor"];

$versao_script = $_POST["versao"];

$reportado = "";

$arquivo = $_FILES["arquivo"]["name"];

$sql = mysql_query("SELECT * FROM {$prefixo}downloads WHERE nome = '".$nome."'") or die(erro(mysql_error()));

$contar = mysql_num_rows($sql);

if($contar > 0) {

$erro.= "Já existe um download com este mesmo nome.<br>";

}

if($nome == "") {

$erro.= "Digite o nome do download.<br>";

}

if($descricao == "") {

$erro.= "Digite a descrição do download.<br>";

}

if($subcategoria == "selecione") {

$erro.= "Você precisa selecionar uma subcategoria.<br>";

}

if($categoria == "selecione") {

$erro.= "Você precisa selecionar uma categoria.<br>";

}

if($autor_script == "") {

$erro.= "Você precisa digitar o autor do download.<br>";

}

if($versao_script == "") {

$erro.= "Você precisa digitar a versão do download.<br>";

}

if($arquivo == "") {

$erro.= "Você precisa colocar algum arquivo para download.<br>";

}

if($erro == "") {

$name = $_FILES['arquivo']['name'];

$nome_tmp = $_FILES['arquivo']['tmp_name'];

$dir = "../downloads/$name";

$upload = move_uploaded_file($nome_tmp, $dir);

if($upload){

$novo = "../downloads/".base64_encode(time()).".".substr($name, -3);

rename($dir, $novo);

}

$cadastrar = mysql_query("INSERT INTO {$prefixo}downloads (nome, data_criacao, arquivo, descricao, cliques, categoria, subcategoria, autor, versao, reportado) VALUES ('$nome', NOW(), '$novo', '$descricao', '$cliques', '$categoria', '$subcategoria', '$autor_script', '$versao_script', '$reportado')", $db) or die(erro(mysql_error()));

if($cadastrar) {

echo "Download cadastrado com sucesso.<hr>";

}else{

echo "Não foi possível cadastrar o download.<hr>";

}

}//fecha if erro

else{

echo"

<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"4\" bgcolor=\"#D8E1F3\" class=\"css\">

<tr>

<td bgcolor=\"#ACBFE6\" class=\"ft10 s1\"><font color=\"#FFFFFF\"><img src=\"../imagens/erro.gif\" width=\"13\" height=\"13\">&nbsp;</font><strong>Ocorreram os seguintes erros:</strong></td>

</tr>

<tr>

<td><font color=\"#FF0000\">".$erro."</font><br />

</span></td>

</tr>

</table>";

}

}//fecha cadastro

?>

<div style=DISPLAY: none; POSITION: absolute" align="left"><IFRAME src name="myIframe" id="myIframe" width="400" height="100" marginwidth="0" marginheight="0"></IFRAME></div>

<form action="admin.php?acao=adsd&amp;cadastrar=download" method="POST" enctype="multipart/form-data" name="Cadastro">

<table width="322">

<tr><td width="314">Nome:</td></tr>

<tr><td><input name="nome" type="text" value="<?php echo $nome; ?>" size="20"></td></tr>

<tr><td>Arquivo:</td></tr>

<tr><td><input type="file" name="arquivo" /></td></tr>

<tr><td>Categoria:</td></tr>

<tr><td><select name="categoria" onChange="carregar();">

<option value="">- selecione -</option>

<?

$sql = mysql_query("SELECT DISTINCT id,nome FROM {$prefixo}categorias order by nome ASC");

while($linha=mysql_fetch_array($sql)) {

echo "<option value=\"" . $linha["id] . "\">" . $linha["nome"] . "</option>";

}

?>

</select>

</td></tr>

<tr>

<td>Subcategoria:</td>

</tr>

<tr>

<td><select name=subcategoria"></select></td>

</tr>

<tr><td>Autor:</td></tr>

<tr><td><input name="autor" type="text" id="autor" value="<?php echo $autor_script; ?>" size="20"></td></tr>

<tr><td>Vers&atilde;o:</td></tr>

<tr><td><input name="versao" type="text" id="versao" value="<?php echo $versao_script; ?>" size="20"></td></tr>

<tr><td>Descrição:</td></tr>

<tr><td><textarea rows="5" name="descricao" cols="40"><?php echo $descricao; ?></textarea></td></tr>

<tr>

<td>&nbsp;</td>

</tr>

<tr><td> <input name="cadastrar" type="submit" id="cadastrar" value="Cadastrar"></td></tr>

</table>

</form>

<?

}

?>

admin.php

<?

include("../config.php");

$id = $_GET['id];

$auxsql = "SELECT DISTINCT nome_sub,id_sub FROM {$prefixo}subcategoria WHERE nome='{$id}' order by nome_sub";

$sql = mysql_query($auxsql);

if(!$sql){echo mysql_error();exit();}

if($contagem !=1) {

header("Location: index.php");

}else{

$user = mysql_query("SELECT * FROM {$prefixo}usuarios WHERE login = '".$login."'") or die(erro(mysql_error()));

$user1 = mysql_fetch_array($user);

if($nivel < 2) {

$user = "$login";

}else{

$user = "<a href=\"admin.php?acao=info_user&id=".$user1[id]."\">$login</a>";

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv=Content-Type" content="text/html; charset=iso-8859-1">

<title><?php echo $nome_site; ?></title>

<link rel="StyleSheet" href="../css.css" type="text/css">

<script src="../js.js" language="javascript"></script>

<style type="text/css">

<!--

.style1 {

color: #000000;

font-weight: bold;

}

-->

</style>

</head>

<body>

<div align="center">

<table width="803" border="1" cellpadding="2" cellspacing="0" bordercolor="#D8E1F3">

<tr valign="top" bgcolor="#D8E1F3">

<td colspan="2">

<table width="100%" border="0">

<tr>

<td align="center"><font color="#000000">Seja bem vindo <strong><?php echo $user; ?></strong></font> </td>

</tr>

</table>

</td>

</tr>

<tr><td colspan="2"></td></tr>

<tr valign="top">

<td width="200" align="left" bgcolor="#FFFFFF">

<table width="100%" border="0">

<tr>

<td align="center" bgcolor="#D8E1F3" class="style1 style3">Menu</td>

</tr>

<tr>

<td>&nbsp;</td>

</tr>

<tr onmouseover="this.bgColor='#D8E1F3'" onmouseout="this.bgColor=''">

<td><a href="admin.php">&gt; Principal</a></td>

</tr>

<tr>

<td>&nbsp;</td>

</tr>

<tr>

<td align="center" bgcolor="#D8E1F3" class="style1 style3">Downloads</td>

</tr>

<tr>

<td>&nbsp;</td>

</tr>

<tr onmouseover="this.bgColor='#D8E1F3'" onmouseout="this.bgColor=''">

<td><a href="?acao=adsd">&gt; Adicionar </a></td>

</tr>

<tr onmouseover="this.bgColor='#D8E1F3'" onmouseout="this.bgColor=''">

<td><a href="logout.php">&gt; Logout</a> </td>

</tr>

</table>

<center>

</center>

<br>

<br>

</td>

<td width="603"><br>

<div align="center">

<table width="643" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="100%" align="left" valign="top">

<?

$page = $_GET["acao];

if(empty($page)) {

include("home.php");

}elseif(eregi("http|ftp|https|www|wget", $page) || !is_file($page.".php")){

include("ilegal.php");

}else{

include($page.".php");

}

?>

</td>

</tr>

</table>

</div></td>

</tr>

<tr valign="top" bgcolor="#D8E1F3">

<td colspan="2">&nbsp;</td>

</tr>

</table>

</div>

</body>

</html>

<?

}

?>

js.js

function carregar(){

var url;

var myIframe = document.getElementById('myIframe');

url = 'admin.php?acao=adsd&amp;cadastrar=download?id='+document.Cadastro.categoria[document.Cadastro.categoria.selectedIndex].value;

document.Cadastro.subcategoria.options.length = 0;

addItem(document.Cadastro.subcategoria,"Aguarde...carregando","",false,document.Cadastro.subcategoria.length)

myIframe.location = url;

document.Cadastro.subcategoria.focus()

}

function inicia(){

var myIframe = document.getElementById('myIframe');

local1 = new Array();

var maximo1, i, campo1;

local1 = myIframe.loc;

campo1 = document.Cadastro.subcategoria;

maximo1 = local1.length;

document.Cadastro.subcategoria.options.length = 0;

addItem(campo1,'--- selecione ---','',false,campo1.length);

for (i=0;i<maximo1;i++){

addItem(campo1,local1[1],local1[0],false,campo1.length);

}

}

function addItem(obj,strText,strValue,blSel,intPos){

var newOpt,i,ArTemp,selIndex;

selIndex = (blSel)?intPos:obj.selectedIndex;

newOpt = new Option(strText,strValue);

Len = obj.options.length+1

if (intPos > Len) return

obj.options.length = Len

if (intPos != Len) {

ArTemp = new Array();

for(i=intPos;i<obj.options.length-1;i++)

ArTemp = Array(obj.options.text,obj.options.value);

for(i=intPos+1;i<Len;i++)

obj.options = new Option(ArTemp[i-1][0],ArTemp[i-1][1]);

}

obj.options[intPos] = newOpt;

if (selIndex > intPos)

obj.selectedIndex = selIndex+1;

else if (selIndex == intPos)

obj.selectedIndex = intPos;

}

Link para o comentário
Compartilhar em outros sites

  • 0

É o que eu gostaria de saber..eu acho que está no php. Tatiana posta o erro por favor.

Eu ia deixar pra lá o post já que não sou bom de php, mas eu vou tentar te ajudar já que o código não é tão complexo assim.

Posta o erro que está dando, porque pode ser qualquer coisa.

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa senhora...o cara faz uma gambiarrita pra fazer isso sem usar ajax...Nossa, de boa, eu to achando que tem javascript demais nesse código...não entendo muito de php, mas tem muita coisa que não precisaria mesmo existir.

Confesso que estou perdido, olhei, olhei olhei...eu até consigo entender, mas o cara criar arrays do NADA...é um trilho de rato que vai te levando de um lugar a outro de um lugar a outro...você se perde no script muito facilmente....Não tem comentários, você precisa esperar por iluminação divina pra entender o que cada um dos vinte mil arrays faz no javascript.

Tá feia a coisa....Tatiana eu preciso mesmo saber onde está o erro, se está no javascript ou não. Então eu gostaria que fizesse uma coisa pra mim:

Use o iE, e rode seu código. Veja se aparece algum sinal de erro no navegador (ali na rodapé). É um sinal amarelo, você provavelmente deve conhecer. Se estiver amarelo, ative o "notificar mensagem a cada erro de script". E rode de novo a página. O depurador vai dizer a linha e a coluna do erro, bem como o tipo de erro que está dando. Com isso eu acho que poderei saber o problema.

Se não der erro algum...vamos chorar.. porque aí pode ser duas coisas. Erro no php, ou erro no próprio javascript porém não seria um erro de sintaxe, mas um erro de lógica.

Um código pronto desse tamanho é complicado de debugar...geralmente a gente constrói o código com comentários e alerts dentro de comentários pra testar os dados..mas esse código tá difícil. Faça o que eu te pedi por favor.

Link para o comentário
Compartilhar em outros sites

  • 0

Danou....

Essa é aquela hora que você entra em desespero e começa a chutar.

Na linha em que você criar o iframe:

<IFRAME src name="myIframe" id="myIframe" width="400" height="100" marginwidth="0" marginheight="0"></IFRAME>
Tem um src sozinho. Remova ele. Na função carregar(), troque:
myIframe.location = url;
Por:
myIframe.src=url

É...eu to chutando mesmo!!!! rsrsrs Um chute consciente, mas ainda é um chute. Vê se funciona. Se não funcionar, eu vou te recomendar que mude de script...Manda pra mim o endereço de onde pegou esses códigos também, eu entrei no link do Eserra, mas tem coisa ae que não tem lá....

Reza fia...

Link para o comentário
Compartilhar em outros sites

  • 0

Kakarotto,

me cadastrei também em outros fóruns e daí me passarm um link contendo

esse script q tive q fazer adaptações para meu sistema...

ai vai o link do script no wmonline...

se este não for o mlehor scrit, você tem algum que eu possa utilizar???

Agardeço a atenção em querer me ajudar...

Link para o comentário
Compartilhar em outros sites

  • 0

Não tenho Tatiana...aliás se eu tivesse, acredite, teria passado muito tempo antes, já que não curti muito esse que está usando.

Eu dar uma olhada no link que passou, mas não prometo que vou conseguir te ajudar, esse tipo de coisa precisa de mais tempo do que os outros tipos de dúvidas. Não sou muito bom em php, mas o primeiro código que passou eu conhecia todas as funções.

Nossa eu tava apostando naquele meu chute rsrsrs. Isso quer dizer que pode ter muito mais problema no js que eu imaginava, já que do jeito que tava o iframe não iria direcionar pra página alguma. Não existe o atributo location pra objetos iframe...A não ser que o referenciasse como janela, que não foi o caso.

Vou dar uma checada, se eu achar um código que de para modificar facilmente ( o que é raro) nas duas linguagens, eu te mando.

Akelabrassssss

Link para o comentário
Compartilhar em outros sites

  • 0

tatiana, certa vez fiz um negocio parecido sem usar ajax. e fica bem simples na verdade, é só você escrever o javascript por php. o q eu fiz era tipo assim tipo assim, tinha um select estado e outro cidade. se você selecionasse um estado, ele preenchia o select das cidades. o codigo era tipo esse:

Function MudaCidade(indice)
{
    var i;
    
    for (i = 1; i < document.getElementById('Esquerda_drpCidade').length; i++)
    {
        document.getElementById('Esquerda_drpCidade').options[i] = null;
    }
    if (indice == 'BA')
    {
        document.getElementById('Esquerda_drpCidade').options[1] = new Option('Salvador', 'Salvador');
    }
    if (indice == 'MG')
    {
        document.getElementById('Esquerda_drpCidade').options[1] = new Option('Belo Horizonte', 'Belo Horizonte');
        document.getElementById('Esquerda_drpCidade').options[2] = new Option('Juiz De Fora', 'Juiz De Fora');
    }
    if (indice == 'RJ')
    {
        document.getElementById('Esquerda_drpCidade').options[1] = new Option('Rio de Janeiro', 'Rio de Janeiro');
    }
    if (indice == 'RS')
    {
        document.getElementById('Esquerda_drpCidade').options[1] = new Option('Porto Alegre', 'Porto Alegre');
    }
    if (indice == 'SC')
    {
        document.getElementById('Esquerda_drpCidade').options[1] = new Option('Blumenau', 'Blumenau');
        document.getElementById('Esquerda_drpCidade').options[2] = new Option('Florianópolis', 'Florianópolis');
        document.getElementById('Esquerda_drpCidade').options[3] = new Option('Joinville', 'Joinville');
    }
    if (indice == 'SP')
    {
        document.getElementById('Esquerda_drpCidade').options[1] = new Option('Ribeirão Preto', 'Ribeirão Preto');
        document.getElementById('Esquerda_drpCidade').options[2] = new Option('São Paulo', 'São Paulo');
    }
}[/code] e no select da cidade, eu simplesmente chamava a funcao:
[code]<select name="Esquerda:drpEstado" id="Esquerda_drpEstado" class="form_ass_tec" OnChange="java script: MudaCidade(this.value);">
ai o codigo javascript eu escrevia pelo Asp.NET, mas você pode escrever pelo php (no caso eu tive que escrevr na propria pagina e não num arquivo separado), tipo assim:
<script language="javascript" type="text/javascript">
<!--
Function MudaCidade(indice)
{
    var i;
    
    for (i = 1; i < document.getElementById('Esquerda_drpCidade').length; i++)
    {
        document.getElementById('Esquerda_drpCidade').options[i] = null;
    }
<?php
    $sql = mysql_query("SELECT * From Estado");
    for ($i = 0; $i < mysql_num_rows($sql) - 1; $i++)
    {
    echo ("if (indice == 'MG')");
    echo ("{");
   $cidade = mysql_query("SELECT * From Cidades Where Estado = '" . mysql_result($sql, $i, "Estado") . "'");
        for ($j = 0; $j < mysql_num_rows($cidade) - 1; $j++)
        {
        echo ("document.getElementById('Esquerda_drpCidade').options[" . $j . "] = new Option('" . mysql_result($cidade, $j, "Cidade") . "', '" . mysql_result($cidade, $j, "Cidade") . "');");
        }
    echo ("}");
    }
?>
}
//-->
</script>[/code]

acho q ficaria melhor com AJAX, principalmente se você tiver mtos registros, mas se você tentar esse meu codigo, qualquer duvida pergunta ae.

Link para o comentário
Compartilhar em outros sites

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...