Ir para conteúdo

POWERED BY:

Arquivado

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

fabiom2211

[Resolvido] listbox

Recommended Posts

Pessoal eu tenho um listbox...e quero enviar as opções que foram selecionados para outra tela

 


<script language="Javascript">
function move(MenuOrigem, MenuDestino){
   var arrMenuOrigem = new Array();
   var arrMenuDestino = new Array();
   var arrLookup = new Array();
   var i;
   for (i = 0; i < MenuDestino.options.length; i++){
       arrLookup[MenuDestino.options[i].text] = MenuDestino.options[i].value;
       arrMenuDestino[i] = MenuDestino.options[i].text;
   }
   var fLength = 0;
   var tLength = arrMenuDestino.length;
   for(i = 0; i < MenuOrigem.options.length; i++){
       arrLookup[MenuOrigem.options[i].text] = MenuOrigem.options[i].value;
       if (MenuOrigem.options[i].selected && MenuOrigem.options[i].value != ""){
           arrMenuDestino[tLength] = MenuOrigem.options[i].text;
           tLength++;
       }
       else{
           arrMenuOrigem[fLength] = MenuOrigem.options[i].text;
           fLength++;
       }
   }

   MenuOrigem.length = 0;
   MenuDestino.length = 0;
   var c;
   for(c = 0; c < arrMenuOrigem.length; c++){
       var no = new Option();
       no.value = arrLookup[arrMenuOrigem[c]];
       no.text = arrMenuOrigem[c];
       MenuOrigem[c] = no;
   }
   for(c = 0; c < arrMenuDestino.length; c++){
       var no = new Option();
       no.value = arrLookup[arrMenuDestino[c]];
       no.text = arrMenuDestino[c];
       MenuDestino[c] = no;
  }
}
</script>

<html>
<head>
<title>Movendo itens de um select para o outro</title>
</head>
<body>
<form name="combo_box">
   <table>
       <tr>
           <td>
               <select multiple size="10" name="list1" style="width:150">
               <option value="1">Acre</option>
               <option value="2">Alagoas</option>
               <option value="3">Amapá</option>
               <option value="4">Amazonas</option>
               <option value="5">Bahia</option>
               <option value="6">Ceará</option>
               <option value="7">Distrito Federal</option>
               <option value="8">Espírito Santo</option>
               <option value="9">Goiás</option>
               <option value="10">Maranhão</option>
               <option value="11">Mato Grosso</option>
               <option value="12">Mato Grosso do Sul</option>
               <option value="13">Minas Gerais</option>
               <option value="14">Pará</option>
               <option value="15">Paraíba</option>
               <option value="16">Paraná</option>
               <option value="17">Pernambuco</option>
               <option value="18">Piauí</option>
               <option value="19">Rio de Janeiro</option>
               <option value="20">Rio Grande do Norte</option>
               <option value="21">Rio Grande do Sul</option>
               <option value="22">Rondônia</option>
               <option value="23">Roraima</option>
               <option value="24">Santa Catarina</option>
               <option value="25">São Paulo</option>
               <option value="26">Sergipe</option>
               <option value="27">Tocantins</option>
               </select>
           </td>
           <td align="center" valign="middle">
               <input type="button" onclick="move(this.form.list2,this.form.list1)" value="<<">
               <input type="button" onclick="move(this.form.list1,this.form.list2)" value=">>">
           </td>
           <td>
               <select multiple size="10" name="list2" style="width:150">
               </select>
           </td>
       </tr>
   </table>
</form>
</body>
</html>



 

 

como faço para enviar para a proxima tela apenas as opções que foram selecionados...

 

Att, Fabio Rosa

Compartilhar este post


Link para o post
Compartilhar em outros sites

nessa linha você especifica para qual página você ker enviar o form

<form name="combo_box">
muda para isso, o action é a página que serão enviados os dados

<form name="combo_box" action="pagina2.php" method="post">
mude a linha

<select multiple size="10" name="list1" style="width:150">
para essa, para transforma o list1 em um array

<select multiple size="10" name="list1[]" style="width:150">

e tbm crie um botão para enviar assim

<input type="submit" value="enviar">

na pagina2.php

 

<?php
//exibe todos os itens selecionados
foreach ($_POST['list1'] as $valor)
     echo "<br> {$valor}";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu conseguir fazer aqui tbm...

só tem um porém...

eu quero selecionar os estados no lado esquerdo e passar para o segundo listbox...

a partir daí clicar no enviar e ir apenas os dados que estão no segundo listbox...

....

no caso que você me apresentou só consigo selecionar os dados que estão no primeiro listbox

e clico no enviar e os dados aparecem na outra página...

....ou seja, não consigo passar os dados do 1°listox para o 2°listbox e muito menos do 2°listbox para o 1°listox...

 

Att, Fabio Rosa

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu queria fazer isso funcionar...

depois eu vou fazer o seguinte...

no primeiro listbox vai ser uma consulta no banco de dados...

e depois no segundo listbox é a sequência que a pessoa quer...

...

obs...no final isso não tem nada a ver com seleçaão de estado...

 

Att, Fabio

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse segundo listbox são as escolhas do primeiro list???

se for..

você pode pegar os values selecionados do primeiro(conforme te mostrei anteriormente), ai seleciona no banco os estados selecionados e monta o segundo listbox.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Victor Cometti...eu fiz isso...

só que o javascript parou de funcionar...

quando coloquei o <select multiple size="10" name="list1[]" style="width:150">

no segundo listbox parou de funcionar...

 

Att, Fabio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não conseguir...

hoje eu voltei a mexer no listbox

acho que deve tem que mexer no javascript

ou não???

Não consigo enviar para a outra pagina os itens escolhidos....

 

Att, Fabio Rosa

 

Victor Cometti

como faço para criar esse id ???

 

Att, Fabio Rosa

 

é não conseguir resolver essa parada do listbox..

Se alguem ver algumna coisa posta aqui alguma...

Att, fabio rosa

Compartilhar este post


Link para o post
Compartilhar em outros sites

dei uma analisada no seu código e fiz algumas adaptações, veja

 

list.htm

<script>
//marca os itens do list2 para enviar
function prepara(){
//pega o list2
var menu = document.getElementById('list2');
//varre todos os itens
for(var i = 0; i < menu.options.length; i++){
	menu.options[i].selected = true;//marca
}
document.getElementById('combo').submit();//envia form	
}
function move(MenuOrigem, MenuDestino){
   var arrMenuOrigem = new Array();
   var arrMenuDestino = new Array();
   var arrLookup = new Array();
   //varre menu de destino
   for (var i = 0; i < MenuDestino.options.length; i++){
       //recebe os values do menu de destino na posição como nome do texto
	arrLookup[MenuDestino.options[i].text] = MenuDestino.options[i].value;
       //recebe o texto do item do menu de destino
	arrMenuDestino[i] = MenuDestino.options[i].text;
   }
   var fLength = 0;
   var tLength = arrMenuDestino.length;//recebe a quantidade de itens do menu de destino
   for(i = 0; i < MenuOrigem.options.length; i++){
	//recebe os valores do menu de origem
       arrLookup[MenuOrigem.options[i].text] = MenuOrigem.options[i].value;
       //verifica selecionados e senão são vazios
	if (MenuOrigem.options[i].selected && MenuOrigem.options[i].value != ""){
           //recebe o item jogando na útima posição
		arrMenuDestino[tLength] = MenuOrigem.options[i].text;
           tLength++;//incrementa
       }
       else{
		//continua com o item no menu de origem quando ele não é selecionado
           arrMenuOrigem[fLength] = MenuOrigem.options[i].text;
           fLength++;//incrementa
       }
   }
//ordenar array de origem
   arrMenuOrigem.sort();
//ordena array de destino
   arrMenuDestino.sort();
//zera o menu de origem
   MenuOrigem.length = 0;
   //zera o menu de destino
MenuDestino.length = 0;
   var c;
   //varre as posições do array do menu de origem atualizado
for(c = 0; c < arrMenuOrigem.length; c++){
       var no = new Option();//cria um item
       no.value = arrLookup[arrMenuOrigem[c]];//atribui ao value do item criado
       no.text = arrMenuOrigem[c];//atribui ao nome de exibição do item criado
       MenuOrigem[c] = no;//joga o item no listbox
   }
   for(c = 0; c < arrMenuDestino.length; c++){
       var no = new Option();
       no.value = arrLookup[arrMenuDestino[c]];
       no.text = arrMenuDestino[c];
       MenuDestino[c] = no;		
  }
}
</script>

<html>
<head>
<title>Movendo itens de um select para o outro</title>
</head>
<body>
<form name="combo_box" action='recebe_list.php' method='POST' id='combo'>
   <table>
       <tr>
           <td>
               <select multiple size="10" name="list1" style="width:150">
				<option value="1">Acre</option>
				<option value="2">Alagoas</option>
				<option value="3">Amapá</option>
				<option value="4">Amazonas</option>
				<option value="5">Bahia</option>
				<option value="6">Ceará</option>
				<option value="7">Distrito Federal</option>
				<option value="8">Espírito Santo</option>
				<option value="9">Goiás</option>
				<option value="10">Maranhão</option>
				<option value="11">Mato Grosso</option>
				<option value="12">Mato Grosso do Sul</option>
				<option value="13">Minas Gerais</option>
				<option value="14">Pará</option>
				<option value="15">Paraíba</option>
				<option value="16">Paraná</option>
				<option value="17">Pernambuco</option>
				<option value="18">Piauí</option>
				<option value="19">Rio de Janeiro</option>
				<option value="20">Rio Grande do Norte</option>
				<option value="21">Rio Grande do Sul</option>
				<option value="22">Rondônia</option>
				<option value="23">Roraima</option>
				<option value="24">Santa Catarina</option>
				<option value="25">São Paulo</option>
				<option value="26">Sergipe</option>
				<option value="27">Tocantins</option>
               </select>
           </td>
           <td align="center" valign="middle">
               <input type="button" onClick="move(this.form.list2,this.form.list1)" value="<<">
               <input type="button" onClick="move(this.form.list1,this.form.list2)" value=">>">
           </td>
           <td>
               <select multiple size="10" name="list2[]" id='list2' style="width:150">
               </select>
           </td>
       </tr>
   </table>
<input type='button' value='enviar' onclick='prepara()'>
</form>
</body>
</html>

 

recebe_list.php

 

<?php
if(!empty($_POST['list2'])){
echo "Value dos itens selecionados:<br>";
foreach($_POST['list2'] as $valor){
	echo $valor."<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.