combo box dinamica java + php

candycane

Power Member
Boa tarde..

tou a tentar fazer uma combo box dinamica, em que quando seleciono um valor esse falor é inserido numa textbox...

o meu comado java não funciona... :(

Código:
<script type="text/javascript">
    function AddGrupo(){ 
    var select_grupo = document.getElementById('list_grupo_cc');    
    select_texto = select_grupo.options(select_grupo.selectedIndex).value;  
     
    document.getElementById('txt_cc').value += select_texto;
    return true;
 }
    </script>

alguem pode ajudar-me?
 
Imagino que list_grupo_cc seja o id da combobox.

Código:
<script type="text/javascript">
    function AddGrupo(){ 
    var select_grupo = document.getElementById('list_grupo_cc').value;
     
    document.getElementById('txt_cc').value += select_grupo;
    return true;
    }
</script>
 
é sim... Mas aonctinua sem funcionar..

o que pretendo é ao selecionar um valor da combobox, esse valor seja indroduzido aotomaticamente na textbos :\
 
Código:
<select onchange="return adicionar_input(this)">

<script type="text/javascript">
function adicionar_input(sel){
valor_option = sel.options[sel.selectedIndex].value;
texto_option = sel.options[sel.selectedIndex].text;
document.getElementById('nome_do_input').value += valor_option + texto_option;
return true;
}
</script>
 
Obrigada hostmake, deu certo :)

Mas o resultado não foi o que pensava que dava par fazer LOL my bad!


Eu tenho 2 tabelas:

newsletters:
id, grupo

emails:
id, id_news, email, nome

O que prentendia era, ao selecionar um grupo, adicionar a texbos os emails que correspondem a esse grupo...

Mas não sei se é possível pk nã faço reload a pagina.... :\

mesmo que faça com ajax, não vai dar pra efectuar o query sem reload, certo?
 
Ajax, faz isso.
E claro que dá sem reload, é esse o propósito todo do Ajax :P

Existem montes de tutorials, se precisares de ajuda no desenvolvimento do codigo para isso, vai postando aqui.



Precisas:

- SACK (Simple ajax code-kit) para fazer a ligação entre os ficheiros.
- Função javascript que chame uma pagina .php, onde tu retomas os emails todos que queres, e devolvas os dados ao sack, para receberes no ficheiro original, e pores na input box.


Edit:

(Lembrei-me de uma aldrabice, se o único propósito dessa tua select list for por os emails do grupo, na input box, e não quiseres usar Ajax e por isso como deve de ser :P
Podes sempre, por os mails todos no value da select, e deixas o name para o Nome, ninguém vai saber..)
 
Última edição:
Edit:

(Lembrei-me de uma aldrabice, se o único propósito dessa tua select list for por os emails do grupo, na input box, e não quiseres usar Ajax e por isso como deve de ser :P
Podes sempre, por os mails todos no value da select, e deixas o name para o Nome, ninguém vai saber..)

eu tentei fazer isso.... mas n consegui, pk no meu select ponho where id_grupo = valor da select list...

pelo menos tentei assim... tive k juntar as tabelas pelo id do grupo,

mas sabes doutra formar? LOL

tive a ver ajax e axei confuso.. mas vou ter k partir cabeça! :D
 
Não tem complicação nenhuma, fazes deste genero:

- ir buscar todos os grupos e respectivos IDs
- ir buscar os e-mails de cada grupo, e guardas separados por uma virgula ou o que te der mais jeito, numa array do genero $array[id_grupo] = $lista_emails_do_grupo;
- criar a select box com um HTML tipo:
Código:
<select onchange="return adicionar_input(this)">
  <option value="lista_de_emails_separados_por_virgula">nome_do_grupo</option>
  (... etc ...)
</select>
- e depois usas tb o javascript tipo o do hostmake, permite.me a adaptação:
Código:
<script type="text/javascript">
function adicionar_input(sel){
document.getElementById('nome_textbox').value += sel.value;
return true;
}
</script>

Desta maneira tens uma select box que sempre que e' selecionada adiciona os e-mails respectivos 'a selecçao 'a textbox, sem teres de te preocupar com AJAX (como o hostmake disse, e' um caso simples demais para se justificar AJAX)
 
Estás a vontade :)
Era isso mesmo que estava a dizer m.costa, as vezes sou 1 bocado preguiçoso para a explicação detalhada :D


candycane: eu tentei fazer isso.... mas n consegui, pk no meu select ponho where id_grupo = valor da select list...

fazes um select, dentro do while onde listas os nomes dos grupos, e metes 1 select para os emails do id, e atribuis os emails a uma variável, ex:

PHP:
$lista_mails = MYSQL_QUERY("SELECT * FROM emails WHERE grupo='".$lrow['id_grupo']."'");
while ($lmail = mysql_fetch_assoc($lista_mails_sql)) {
        $lista_mails_grupo[] = $lmail['email'];
}
$value_grupo = implode(",", $lista_mails_grupo);

echo "<option value='".$value_grupo."'>".$lrow['nome_grupo']."</option>";
 
Desculpa :P

Como é um while para percorrer os emails, dentro do while que cria o select, eu atribui lrow a variável que tu tas a usar no teu while original para fazeres o echo das options, percebeste?
 
Desculpa :P

Como é um while para percorrer os emails, dentro do while que cria o select, eu atribui lrow a variável que tu tas a usar no teu while original para fazeres o echo das options, percebeste?


Ainda nãp.. :s

A parte do meu codigo pra buscar os id e emails é este:

PHP:
<?php
 
 include("../includes/seccoes_admin.php");
 include("../includes/database.php");
 include("../includes/funcoes.php");
 
 confirmar_admin();
 
 $grupos = "SELECT *
    FROM newsletters";
    
 $emails = "SELECT *    
    FROM newsletters n
    INNER JOIN emails e ON n.id=e.id_grupo
    WHERE id_grupo = '".$_POST['list_grupo']  ."'";
    
  
 $resultado_grupo =  mysql_query($grupos, $ligacao); 
 $resultado = mysql_query($emails, $ligacao);
 
 $emails_grupo = mysql_fetch_assoc($resultado);
 $nome_grupo =  mysql_fetch_assoc($resultado_grupo);
   
 $array_grupos = array($emails_grupo);
 
 //separar os emails por virgula
 $value_grupo = implode(",", $array_grupos);
 
?>


o form:

Código:
<select name="list_grupo" id="list_grupo" onchange="return addGrupo(this);">
              <option value="none">Selecione um grupo...</option>
               <?php  
 
                        while($nome_grupo= mysql_fetch_assoc($resultado_grupo)) 
                        { 
                            echo "<option value=".$nome_grupo['id'].">".$nome_grupo['grupo']."</option>"; 
                        } 
 
               ?>
    </select>


ainda n entendi o que vocês queren dizer, pra conseguir ter os emais no value dos options :\
 
Última edição:
Tens uma tabela com o nome dos grupos.

Tens um select, onde ficas com o nome, e o id dos mesmos, e estas a fazer um echo dentro do select para as options, certo ?



PHP:
 <?php  
 
                        while($nome_grupo= mysql_fetch_assoc($resultado_grupo)) 
                        { 
                            echo "<option value=".$nome_grupo['id'].">".$nome_grupo['grupo']."</option>"; 
                        } 
 
               ?>


É dentro destas chavetas que tens que por mais ao menos seguinte, tenta perceber:

PHP:
<?php  
 
                        while($nome_grupo= mysql_fetch_assoc($resultado_grupo)) 
                        { 
$lista_mails_deste_grupo = MYSQL_QUERY("SELECT * FROM emails WHERE id_grupo='".$nome_grupo['id']."'");
      while ($lista_mails = myqsl_fetch_assoc($lista_mails_deste_grupo) {
          $mails_grupo[] = $lista_mails['email'];
      }
$emails_separados_por_virgula = implode(",", $mails_grupo);


                            echo "<option value=".$emails_separados_por_virgula.">".$nome_grupo['grupo']."</option>"; 
                        } 
 
               ?>
 
se não te preenche a combobox, é porque está a ocorrer um erro, no SQL ou nalgum outro pequeno promenor do codigo da lista dos emails, dentro das combobox's, os erros não aprecem na pagina, tens que ver no source.

Faz debug aos SQL's que tas a fazer, e vai fazendo echo's a ver se chega lá, e faz or DIE no SQL também.
 
afinal ja aparece a textarea e a combobox preenchida,

tinha 2 coisas mal escritas no codigo...

e em vez de:
<option value=".$nome_grupo['id'].">

pus o $emails_separados_por virgula


E JÁ FUNCIONA!!!! :D

Obrigada mesmo! :D

salvaste-.me a pele... ajax... jesus!
 
Eu sei...

e daki a nada vou ter que olhar pra isso...

Tenho 2 combo box, e tenho k preencher a 2º de acordo com a 1º.

O mesmo vou ter k fazer com listas....

Tenho um lista de serviços, e a 2º lista é preenchida de acordo com a 1º e por ai fora..

Conheces um bom tutorial sobre isso?

Eu procuro e vejo mtos complicados, e um que só funcionou o IE :(
 
Back
Topo