Jump to content


Photo

Select Multiple


  • Faça o login para participar
10 replies to this topic

#1 == MotoBoy ==

== MotoBoy ==

    12 Horas

  • Usuários
  • 133 posts
  • Sexo:Masculino
  • Localidade:Fortaleza (CE)

Posted 23/12/2008, 00:29

Olá Fórum !

Seguinte, consegui fazer um comboBox muito legal, que é o seguinte: dois <select> do tipo multiple, sendo um com vários itens e outro vazio, dois botões embaixo para poder transitar itens de um select para outro. Fiz tranquilo, tá funcionando perfeitamente, mas não estou conseguindo pegar os post´s do segundo <select>, que são os meus itens selecionados.

Vô postar o script para vocês verem:

Formulário com os Select´s
<form name="frmForm" id="frmForm" action="" method="post" enctype="multipart/form-data">
<select multiple="multiple" name="clientes" id="clientes" style="width:150px; height:130px;" onKeyDown="if(event.keyCode==39) adicionaItens(); if(event.keyCode==13) event.keyCode=9;">

	<option value="1">Maria</option>
	<option value="2">Jõao</option>
	<option value="3">Antônio</option>
	<option value="4">Francisco</option>
	<option value="5">Julia</option>
	<option value="6">Emerson</option>
	<option value="7">Ana</option>
	<option value="8">Lilian</option>
	<option value="9">Micaela</option>
	<option value="10">Hotelário</option>

</select>

<select multiple="multiple" name="selecionados" id="selecionados" style="width:150px; height:130px;" onKeyDown="if(event.keyCode==37) removeItens(); if(event.keyCode==13) event.keyCode=9;"></select><br />

<input type="button" name="btnDireita" id="btnDireita" value="-->" onClick="adicionaItens()" />
<input type="button" name="btnEsquerda" id="btnEsquerda" value="<--" onClick="removeItens()" /><br /><br />

</form>

Código Javascript

<script type="text/javascript">
	function adicionaItens() {

		var form = document.frmForm;
		var fl = form.clientes.length -1;
		var au = form.selecionados.length -1;
		var deptos1 = "x";

		//build array of assiged users
		for (au; au > -1; au--) {
			deptos1 = deptos1 + "," + form.selecionados.options[au].value + ","
		}

		//Pull selected resources and add them to list
		for (fl; fl > -1; fl--) {
			
			if (form.clientes.options[fl].selected && deptos1.indexOf( "," + form.clientes.options[fl].value + "," ) == -1) {
			
				t = form.selecionados.length
				opt = new Option( form.clientes.options[fl].text, form.clientes.options[fl].value );
				form.selecionados.options[t] = opt
				
			}
			
		}
		
	}
	
	function removeItens() {
   	
		var form = document.frmForm;
		fl = form.selecionados.length -1;

		for (fl; fl > -1; fl--) {
			
			if (form.selecionados.options[fl].selected) {
				
				form.selecionados.options[fl] = null;
				
			}
		}
		
	}
	
	</script>

Se vocês copiarem, colar e executar a página, ele vai funcionar perfeitamente ! Mas, se eu for querer enviar os meus selecionados para outra página eu não consigo, alguem me ajuda com esse script por gentileza.

Abraços !

#2 xuxa gremista

xuxa gremista

    Turista

  • Usuários
  • 51 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre - RS

Posted 23/12/2008, 10:51

Salve Amigo!

Action é a proriedade que define para onde o formulário é enviado!
O seu esta em branco!
<form name="frmForm" id="frmForm" action="" method="post" enctype="multipart/form-data">
Enviando para imprimir.php
<form name="frmForm" id="frmForm" action="imprimir.php" method="post" enctype="multipart/form-data">

Um abraço!

VIAJEI CARA!!! uhum
meo, seu problema tah no javascript
Alguém mova este tópico!!

SOLUÇÃO !!!

Solução gambiarra mas tah valendo!!!
Adiciona essa linha no final da função adicionaItens
frmForm.selecionados.value = frmForm.selecionados.length;

a função ficará assim
function adicionaItens() {

		var form = document.frmForm;
		var fl = form.clientes.length -1;
		var au = form.selecionados.length -1;
		var deptos1 = "x";

		//build array of assiged users
		for (au; au > -1; au--) {
			deptos1 = deptos1 + "," + form.selecionados.options[au].value + ","
		}

		//Pull selected resources and add them to list
		for (fl; fl > -1; fl--) {
			
			if (form.clientes.options[fl].selected && deptos1.indexOf( "," + form.clientes.options[fl].value + "," ) == -1) {
			
				t = form.selecionados.length
				opt = new Option( form.clientes.options[fl].text, form.clientes.options[fl].value );
				form.selecionados.options[t] = opt
				
			}
			
		}
		frmForm.selecionados.value = frmForm.selecionados.length;
	}

ABRAços!

Edição feita por: xuxa gremista, 23/12/2008, 10:50.


#3 == MotoBoy ==

== MotoBoy ==

    12 Horas

  • Usuários
  • 133 posts
  • Sexo:Masculino
  • Localidade:Fortaleza (CE)

Posted 24/12/2008, 09:41

Não deu certo o que o amigo colocou, ele não envia o Post para a outra página !

Alguém poderia me auxiliar ?


Olá Fórum,

Consegui fazer aqui capturar o post e compartilharei aqui com o restante da galera.

01 - Havia percebido que ele só enviava o POST, se o algum item do select tivesse selecionado (dããã......isso é obvio), afinal de contas, SELECT é seleção ou seleções, então teria que haver algum selecionado no segundo select;

02- A minha função JavaScript estava 100% rodando perfeitamente, mas o meu único problema era realmente o envio do itens transferido de um SELECT para o outro;

03 - Sabendo que os itens só irão para o POST se tiverem selecionados, fiz uma função que ao evento de submissão do Formulário (onSubmit) ele selecionasse todos os itens do SELECT dos Selecionados, segue abaixo o código modificado e 100% funcionando !

FORMULARIO.HTML (Perceba que única mudança aqui, é o evento onSubmit e o nome do segundo SELECT)
<form id="form" name="form" method="post" onsubmit="return selectAll()" enctype="multipart/form-data" action="recebeDados.php" class="formulario">
	
	<select multiple="multiple" name="modulos" class="campo" id="modulos" style="width:150px; height:130px;" onKeyDown="if(event.keyCode==39) adicionaItens(); if(event.keyCode==13) event.keyCode=9;">

		<option value="CADASTROS">Cadastros</option>
		<option value="OPERACIONAL">Operacional</option>
		<option value="AGENDAMENTO">Agendamento</option>
		<option value="SISTELEFONICO">Sistema Telefônico</option>
		<option value="SISTEMA">Sistema</option>

	</select>
		
	<select name="selecionados[]" id="selecionados" multiple="multiple" class="campo" style="width:150px; height:130px;" onKeyDown="if(event.keyCode==37) removeItens(); if(event.keyCode==13) event.keyCode=9;"></select><br />
		
	<input type="button" name="btnDireita" id="btnDireita" value="-->" onClick="adicionaItens()" class="botao" />
	<input type="button" name="btnEsquerda" id="btnEsquerda" value="<--" onClick="removeItens()" class="botao" /><br /><br />
	
	<input type="submit" value="Enviar" />

</form>

JAVASCRIPT (E aqui, apenas adicionei a função selectAll())
<script type="text/javascript">
	function adicionaItens() {
	
		var form = document.form;
		var fl = form.modulos.length -1;
		var au = form.selecionados.length -1;
		var deptos1 = "x";
	
		for (au; au > -1; au--) {
			deptos1 = deptos1 + "," + form.selecionados.options[au].value + ","
		}
	
		for (fl; fl > -1; fl--) {
			
			if (form.modulos.options[fl].selected && deptos1.indexOf( "," + form.modulos.options[fl].value + "," ) == -1) {
			
				t = form.selecionados.length;
				opt = new Option( form.modulos.options[fl].text, form.modulos.options[fl].value );
				form.selecionados.options[t] = opt;
					
			}
			
		}
				
	}
	
	function removeItens() {
	
		var form = document.form;
		fl = document.getElementById('selecionados').length -1;
	
		for (fl; fl>-1; fl--) {
			
			if (document.getElementById('selecionados').options[fl].selected) {
				
				  document.getElementById('selecionados').options[fl] = null;
				
			}
		}
		
	}
	
	function selectAll(){
		
		var selecionados = document.getElementById('selecionados');
		
		for(i=0; i<=selecionados.length-1; i++){
		
			selecionados.options[i].selected = true;
		
		}
	
	}
</script>

Espero ter ajudado com minha dúvida, qualquer coisa postem ai !
Abraços !

#4 ayrancd

ayrancd

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:Aracaju/SE
  • Interesses:http://www.plugmania.com.br

Posted 14/08/2009, 08:54

Olá amigo, fiz ae o que você me passou e realmente o pró é que precisa estar selecionado as paradinhas pra enviar via form porém, pelo código que vocÊ passou ainda não consegui fazer ele selecionar ao enviar via form ele simplesmente ele envia mas não faz a seleção do form da esquerda segue:

JAVASCRIPT
&lt;script type="text/javascript">
	function adicionaItens() {
	
		var form = document.form;
		var fl = form.modulos.length -1;
		var au = form.selecionados.length -1;
		var deptos1 = "x";
	
		for (au; au > -1; au--) {
			deptos1 = deptos1 + "," + form.selecionados.options[au].value + ","
		}
	
		for (fl; fl > -1; fl--) {
			
			if (form.modulos.options[fl].selected && deptos1.indexOf( "," + form.modulos.options[fl].value + "," ) == -1) {
			
				t = form.selecionados.length;
				opt = new Option( form.modulos.options[fl].text, form.modulos.options[fl].value );
				form.selecionados.options[t] = opt;
					
			}
			
		}
				
	}
	
	function removeItens() {
	
		var form = document.form;
		fl = document.getElementById('selecionados').length -1;
	
		for (fl; fl>-1; fl--) {
			
			if (document.getElementById('selecionados').options[fl].selected) {
				
				  document.getElementById('selecionados').options[fl] = null;
				
			}
		}
		
	}
	
	function selectAll(){
		
		var selecionados = document.getElementById('selecionados');
		
		for(i=0; i<=selecionados.length-1; i++){
		
			selecionados.options[i].selected = true;
		
		}
	
	}
</script>

CAMPO FORM
<form action="?acao=cad_agenda&sala_id=<%=request("sala_id")%>" target="_self" method="post" name="form" id="form" onSubmit="return VALIDA_CONTATO();return selectAll();">


NO HTML
<tr>
			  <td colspan="3" style="border:#CCCCCC 1px solid">
			  <select multiple="multiple" name="modulos" class="campo" id="modulos" style="width:330px; height:130px;" onKeyDown="if(event.keyCode==39) adicionaItens(); if(event.keyCode==13) event.keyCode=9;">
	   <% while not usuarios.eof and not isnull("usuarios") %>
	   <option value="<%=usuarios("nome")%>"><%=usuarios("nome")%></option>
	   <%
	   usuarios.movenext
	   wend
	   %>
		</select>
</td>
			</tr>
			  <tr>
			  <td colspan="3" style="border:#CCCCCC 1px solid">
		   <input type="button" name="btnDireita" id="btnDireita" value="Adicionar" onClick="adicionaItens()" class="botao" />
	<input type="button" name="btnEsquerda" id="btnEsquerda" value="Remover" onClick="removeItens()" class="botao" />
</td>
			</tr>
			 <tr>
			  <td colspan="3" style="border:#CCCCCC 1px solid">
				<select name="selecionados" id="selecionados" multiple="multiple" style="width:330px; height:130px;" onKeyDown="if(event.keyCode==37) removeItens(); if(event.keyCode==13) event.keyCode=9;"></select><br />
	  
</td>
			</tr>

Pode me ajudar?

Consegui outra solução

Função:
function selecionartodos(){
CONTROL = document.form.selecionados;
for(var i = 0;i < CONTROL.length;i++){
CONTROL.options[i].selected = true;
}
}

Add isso no botão de enviar

onClick="selecionartodos()"

pronto!
Meus Sites:
Oficial: http://www.plugmania.com.br
Plug Downloads: http://www.plugmania.com.br/download
Plug Classificados: http://www.plugmania...r/classificados
Email: cezarayran@plugmania.com.

#5 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 14/08/2009, 13:41

Tópico movido


Tópico movido para: Desenvolvimento » Javascript / DOM / AJAX / ECMAScript



Até mais

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#6 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 20/09/2017, 19:52

Amoxicillin Side Effects And Toddler generic cialis El Viagra Tiene Vencimiento Vendita Cialis Net Comprar Cialis Andorra Sin Receta Indian Pharmacy Tramadol cialis online Levitra Dosage Pharmacie
Injection Amoxicillin Dosage cialis buy online Priligy Dapoxetine En Inde
Cheapest Levitra Buy Cialis Super Active Plus Order Fertility Pills Online
No Doctor Viagra <a href=http://cialtobuy.com>cialis</a> Nebenwirkungen Viagra 100mg

#7 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 08/10/2017, 06:31

Levaquin Propecia Productividad Cialis Shop viagra Noscript Viraga Donde Comprar Viagra En Murcia Levitra Generika Vardenafil Pillen
Cymbalta Propecia Le Prix viagra Levitra Dose Consigliata Super Cialis Order Tadalis Sx Soft Chef Projet Moa
Best Brand Viagra Hair Growth Propecia Men Online Propecia No Prescription generic viagra Order Propecia Online Cheap Kamagra Vendita In Svizzera Online Pharmacy With Prescription

#8 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 23/10/2017, 22:22

Canada Metformin No Prescription Buy Disulfiram Acticin For Sale cialis Cialis Controindicazioni Buy Generic Lasix Viagra Cocaina
Human Cephalexin For Dogs Name Brand Viagra From Canada Penicillin Amoxicillin viagra Acheter Cialis Sur Paris Viagra Online 25mg
Canada No Prescription Propecia Finasteride Priligy Dapoxetina Generico levitra generico prezzo Le Viagra En Egypte Brand Name Cialis For Sale

#9 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 24/10/2017, 17:53

Amoxicillin With Milk Products Viagra Ibiza online pharmacy Buy Prednisone With No Prescription Amoxil Clavulanique
For Sale Doxycycline Over The Counter Cephalexin Levitra Miglior Prezzo extra super levitra frumforum.co Pdr Side Effects Rare For Amoxil Can You Take Amoxicillin With Tylenol Amoxicillin Dosage In Children
discount isotretinoin where to buy Clomipramine Tablets Online Amoxicillin For Animals No Prescription viagra Trouver Levitra En Belgique Deals Propecia Buy Cialis 40 Mg In Toronto
Dosis Del Kamagra Viagra Vente Libre En Pharmacie viagra prescription Viagra On Line Viagra Schweiz

#10 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 03/11/2017, 02:45

Tips To Last Longer Kamagra Buy London Compatibility Of Cephalexin And Doxycycline order levitra on line Veterinary Keflex Zithromax Typhoid Fever
Liquid Amoxicillin Order Worldwide Acticin Tablets Legally Priligy Generico In Farmacia wheretobuylevitrapills Comparaison Cialis Levitra
Viagra Pills Lowest Prices Viagra Bringt Nichts buy viagra Canada Drugs Online Propecia Worked For Me Receding Hairline

#11 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 30/11/2017, 16:29

Buy 5mg Daily Cialis Cheap cialis buy online Comprar Cialis Barato Propecia Side Effects Sperm Prescription
Cialis Scaduto Da Un Mese Meds Online Pharmacies generic levitra professional 20 mg Comprar Cialis De Calidad Propecia E Impotencia




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq