Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

walace

[Resolvido] Select dinâmico

Recommended Posts

Baixei este da net e alterei para minha necessidade. Aparentemente parece ser meio complicado, mas foi o mais fácil que achei... e funcionou de primeira.

 

PHP
<html> 

<head> 

<title>Auto Drop Down com PhP e MySQL</title>   

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

</head> 

       

<body bgcolor="#FFFFFF" text="#000000"

       

<?php   

  include("inc/conecta.php");   

?>     

<script LANGUAGE="JavaScript"

team = new Array(       

<?     

  # Seleciona todos os projetos cadastrados     

  $sql="select * from projeto order by procod"

  $sql_result=mysql_query($sql, $conexao);     

  $num=mysql_numrows($sql_result);     

  while ($row=mysql_fetch_array($sql_result)){ 

                $conta=$conta+1;       

                $procod=$row["procod"]

                echo "new Array(n";

                $sub_sql="select DISTINCT fastit,fasseq from fase where procod= $procod order by fasseq";       

                $sub_result=mysql_query($sub_sql, $conexao);   

                $num_sub=mysql_numrows($sub_result);   

                if ($num_sub>=1){ # Se achar alguma fase para o projeto marca a palavra Todas   

                   //echo "new Array("Todas", 0),n"; 

                while ($rowx=mysql_fetch_array($sub_result)){   

                          $codigo_sub=$rowx["fasseq"]

                          $sub_nome=$rowx["fastit"];   

                          $conta_sub=$conta_sub+1;     

                          if ($conta_sub==$num_sub){   

                                 echo "new Array("$sub_nome", $codigo_sub)n";       

                                 $conta_sub=""

                          }else{       

                                 echo "new Array("$sub_nome", $codigo_sub),n";       

                          }     

                 }     

  }else{       

  echo "new Array("Sem Sub-Itens", 0)n"; #Se nao achar fase para o projeto selecionado...   

  }     

  if ($num>$conta){     

         echo "),n";   

  }     

}       

echo ")n";     

echo ");n";   

?>     

//Inicio da função JS   

function fillSelectFromArray(selectCtrl, itemArray, goodPrompt, badPrompt, defaultItem) {       

  var i, j;     

  var prompt;   

  for (i = selectCtrl.options.length; i >= 0; i--) { // empty existing items   

          selectCtrl.options[i] = null

  }     

  prompt = (itemArray != null) ? goodPrompt : badPrompt;       

  if (prompt == null) { 

         j = 0

  } else {     

        selectCtrl.options[0] = new Option(prompt);     

        j = 1

  }     

  if (itemArray != null) { // add new items     

         for (i = 0; i < itemArray.length; i++) {       

                 selectCtrl.options[j] = new Option(itemArray[i][0]);   

                 if (itemArray[i][1] != null) { 

                        selectCtrl.options[j].value = itemArray[i][1]

                 }     

         j++;   

        }       

        selectCtrl.options[0].selected = true; // select first item (prompt) for sub list       

  }     

}       

</script>       

<center>       

<form name="form1" method="post" action="">     

   <p>Aqui também temos itens a ser observados, verifique no codigo fonte</p>   

   <p><b>       

         <br>   

         <select name="projeto" onChange="fillSelectFromArray(this.form.fase, ((this.selectedIndex == -1) ? null : team[this.selectedIndex-1]));">     

           <option>Escolha uma Categoria</option>       

           <?   

#Seleciona todos os projetos para setar os valores no combo     

   $sql="select * from projeto order by procod";       

   $sql_result=mysql_query($sql, $conexao);     

   while ($row=mysql_fetch_array($sql_result)){ 

   $procod=$row["procod"];     

   $desc_categoria=$row["protit"];     

   ?>   

           <option value="<?echo $procod;?>">   

           <?echo $desc_categoria;?>   

           </option>   

           <?   

   }   

#Popula o segundo combo de acordo com a escolha no primeiro     

   ?>   

     

         </select>     

  <br> 

         <select name="fase">   

           <option>---------------</option>     

         </select>     

         </b> </p>     

 </form></center>       

</body> 

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.