Ir para conteúdo

POWERED BY:

Arquivado

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

RosePS

[Resolvido] Pegar valores em Select Multiple

Recommended Posts

Olá boa tarde pessoal.

Estou aprendendo programação agora e estou com um probleminha aqui com um módulo feito em Javascript + PHP

 

Tenho duas select multiple. A primeira lista algumas informações do banco que serão selecionadas pelo usuário que vai clicar no botão adicionar e o dado selecionado irá para a segunda select multiple.

Acontece que quando vou salvar essas informações salva apenas um dos dados transferidos.

 

#OS DADOS SÃO TRANSMITIDOS DE UM SELECT P/ OUTRO

 

<input type="button" onClick="move(this.form.destino,this.form.origem)" value="<<">

<input type="button" onClick="move(this.form.origem,this.form.destino)" value=">>">

//ação da função javascript que ja esta funcionando

 

<select multiple size="10" name="destino[]" style="width:220">

//caixa de seleção de destino -> ja está recebendo os dados corretamente

 

$selecao=$_POST["destino"];

 

Salva normalmente mas apenas um dos itens q foram pra segunda select multiple e não todos eles.

 

Alguém sabe de alguma solução para esse problema ou tenha uma outra sugestão pra realizar essa função.

 

Agradeço a ompreensão.

 

Obrigada xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Novato... muito obrigada viu! xD

inseriu todos ^^

só tem um bug a resolver

Se não selecionarmos todos os elementos da lista dá erro.

Pesquisando encontrei uma função pra resolver isso

mas inseri aqui no código mas ainda não está funcionando

 

function select_all(form)

{

var elem = form.elements['sel2'];

 

for (i = 0; i < elem.length; i++)

{

elem.selected = true;

}

}

 

 

<form action="" method="post" onSubmit="select_all(this);">

 

 

Alguém pode me ajudar com esta ou dar outra sugestão?

 

Mais uma vez, Obrigada. xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos resolver seu problema???

 

Faz o seguinte:

 

Coloca um id para identificar sua listagem 2

<select multiple size="10" name="destino[]"  id="combo_destino" style="width:220">

Coloca no ON Submit do seu form assim

OnSubmit="selecionatudo();"

Depois coloca este funcao java script no seu arquivo:

function selecionatudo(){
		
		var selecionados = document.getElementById('combo_destino');
		
		for(i=0; i<=selecionados.length-1; i++){
		
			selecionados.options[i].selected = true;
		
		}
	
	}

Testa aí e me fala se funcionou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Novato.

Desculpe a demora... (Eu estava viajando. xD)

 

Vi agora seu post e testei, mas não funcionou.

Dá o mesmo erro. Quando não selecionado manualmente indica que não há nada na combo_destino.

Já utilizei 3 funções diferentes, mas ainda assim não funcionou, e realmente não entendo o motivo, pois a meu ver deveria estar funcionando já.

 

Vou postar como exemplo uma outra função javascript bem parecida que também foi utilizada:

 

function tudo() {

var combo=document.forms[0].elements[0];

var q=combo.length;

 

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

combo.options.selected=true;

}

}

 

Vou continuar procurando a solução.

Muito obrigada pela ajuda e qualquer nova sugestão fico grata.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Observei que funciona sim mas no ON Submit a pessoa tem que clicar duas vezes o que torna inviável, então faz o seguinte...

Você tem um botão de enviar o form não tem??? Chama a função no OnMouseOver="selecionatudo(); do Botão Enviar(Submit do form) Olha um exemplo abaixo para ver como funciona...

<form action="primeiro.php" name="frmdestino"  method="POST">
<select name="destino[]" size="5" id="cdestino" multiple="multiple">
  <option value="branco">branco</option>
  <option value="azul">azul</option>
  <option value="preto">preto</option>
  <option value="verde">verde</option>
</select>

<script>

	function selecionatudo(){
		
		var selecionados = document.getElementById('cdestino');
		
		for(i=0; i<=selecionados.length-1; i++){
		
			selecionados.options[i].selected = true;
		
		}
	
	
	}


</script>
<input type="submit" value="ok" OnMouseOver="selecionatudo();">
	
</form>



<?
	
if(isset($_POST["destino"]))
{
	
	
	foreach($_POST["destino"] as $opcao)
	{
		echo "destino escolhidos ". $opcao ."<br>";
   }
	
}
?>

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.