1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Carregar uma comobobox apartir de outra em php

Discussão em 'Web Development' iniciada por cakanilo, 17 de Novembro de 2008. (Respostas: 5; Visualizações: 2087)

  1. Boa tarde, eu tenho uma combobox que tem as suas opções, eu gostaria que de acordo com a opção selecionada ele carregace a 2º combo,

    É assim eu quero fazer a inscrição de uma pessoa em um curso e tenho a 1º combo que carrega os cursos, de acordo com a seleção desta ele carregaria a 2º.

    Código:
    <?php
     include("./inc/conexao.inc.php");
     
     $cursoedicao = mysql_query("SELECT * FROM tbCurso_Edicao WHERE Aberto = 0;");
     
     $turmacurso = mysql_query( "SELECT * FROM tbTurma_Curso WHERE Aberto = 0;");
      
    ?>
      
    COMBO DO CURSO
    Código:
    <select name="IDCurso_Edicao" id="IDCurso_Edicao">
    <?php
      for( $ce =  0; $ce < mysql_num_rows($cursoedicao); $ce++)
      {
    ?>
      <option value="<?php echo mysql_result( $cursoedicao, $ce, "IDCurso_Edicao"); ?>" selected="selected">
    <?php echo mysql_result( $cursoedicao, $ce, "Curso_Edicao"); ?>
    </option>
      <?php
      }
    ?>
    </select>
       
    COMOBO DA TURMA
    Código:
    <select name="IDTurm_Curso" id="IDTurm_Curso">
    <?php
      for( $ce =  0; $ce < mysql_num_rows($turmacurso); $ce++)
      {
    ?> if 
    <option value="<?php echo mysql_result( $turmacurso, $ce, "IDTurm_Curso"); ?>" if selected="selected">
    <?php echo mysql_result($turmacurso, $ce, "Turma"); ?>
    </option>
      <?php
      }
    ?>
    </select>
       
    EU GOSTARIA QUE QUANO CLICASSE 1º COMOBO ELE MOSTRASSE A OPÇÕES NA 2º COMBO DE ACORDO COM A SELEÇÃO DA 1º... DESTE JÁ AGRADEÇO A COLABORAÇÃO.
     
    Última edição pelo moderador: 17 de Novembro de 2008
  2. Granadafeup

    Granadafeup Power Member

    Tens algumas hipóteses
    - Fazer load a pagina novamente (mas agora com a info da segunda combo box, basta colocar o ID da primeira no _POST)
    - Utilizar AJAX para adicionar a informação da segunda combo box depois de seleccionar a primeira (Tutorial ajax/php)
     
  3. fil79

    fil79 Power Member


    existe ainda uma terceira opção que é usar um iframe escondido que processa a informação(server side) e devolve os resultados à página principal (javascript)...mas a melhor opção é usares mesmo AJAX
     
  4. PHP + JS;

    Algo do tipo:

    Código:
    <FORM action="search.php" method="POST" id="form1" name="form1">
    <?
    echo '<SELECT name="value1" id="value1" onChange="change_value1()">
        <OPTION value="">Select a value1</OPTION>';
        
            while($row=mysql_fetch_array($result1))
            {
                echo '<OPTION value="'.$row['value1'].'"';
                if(!empty($_REQUEST['p1']) && ($row['value1']==$_REQUEST['p1']))
                    echo "selected";
                    
                echo '>'.$row['value1'].'</OPTION>';
                
            
            }
        
    echo '</SELECT>&nbsp;';
    
    if(!empty($_REQUEST['p1']))
    {
        $result2=mysql_query("select value2 from table2 where value1='".$_REQUEST['p1']."'order by value2 desc");
        echo '<SELECT name="value2" id="value2" onChange="change_value2()" >
            <OPTION value="">Select a value2</OPTION>';    
            while($row=mysql_fetch_array($result2))
            {
                echo '<OPTION value="'.$row['value2'].'"';
                if(!empty($_REQUEST['p2']) && ($row['value2']==$_REQUEST['p2']))
                    echo "selected";
                echo '>'.$row['value2'].'</OPTION>';
            }
        
        echo '</SELECT>&nbsp;';
    }
    </FORM>
    JavaScript Document

    Código:
    function change_value1()
    {
        var p1=document.form1.value1.value;
        window.location.href="keyword.php?p1="+p1;
    }
    function change_value2()
    {
        var p1=document.form1.value1.value;
        var p2=document.form1.value2.value;
        window.location.href="keyword.php?p1="+p1+"&p2="+p2;
    }
     
  5. Granadafeup

    Granadafeup Power Member

    Esta solução requer o reload da pagina mas em principio (so li na diagonal) faz aquilo que pedis-te.
     
  6. sim, faz o reload.
    fazer um pequeno iframe com esta parte deve resolver.
     

Partilhar esta Página