Ir para conteúdo
Fórum Script Brasil
  • 0

Controlando limite em Listbox operado com JavaScript


damndk

Pergunta

Olá pessoal. Sou novo aqui no forum, bem como sou novato em programação, principalmente no que diz respeito a JavaScript. Bom, vamos ao meu problema, espero que possam me ajudar. Já peço desculpas adiantadas caso o problema seja muito simples.

Estou com uma tarefa na qual eu tenho que fazer uma página PHP que sirva como súmula de uma partida de futebol. Além de campos como data, tecnico, local, etc, a página deve conter dois Listbox, o primeiro deve conter nomes de jogadores disponíveis para serem escalados para uma dada partida, e o segundo irá conter os jogadores que forem sendo escalados. Isso é feito através de dois botões que movem um dado jogador de um listbox para o outro.

Para controlar essa função de mover os jogadores entre os dois listbox, estou usando uma função de Javascript, a qual encontrei na internet (não gravei a fonte :/ ), e tentei adaptar para fazer a minha necessidade. Até consegui fazer com que os jogadores possam ser movidos de um lado para o outro, e até a parte posterior de gravar no banco de dados somente a pate dos jogadores escalados. Meu maior problema mesmo é com o código do JavaScript, o qual não consegui entender direito.

Como eu disse, consegui fazer com que os jogadores sejam movidos de acordo com os botões apertados, porém, há uma pequena regra nesta minha tarefa. Somente 5 jogadores podem ser escalados. Caso o usuário tente escalar um sexto jogador, uma mensagem deve avisá-lo que o limite já foi alcançado, e este sexto jogador que o usuário tentou escalar, deve voltar para o listbox dos disponíveis. Parece algo simples (eu acho), mas não consegui entender direito o código e por isso não consegui adaptá-lo para satisfazer essas condições :/ Por isso, resolvi vir pedir a ajuda de vocês.

Segue abaixo o código da função "move".

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++;
			}
		}

		arrMenuOrigem.sort();
		arrMenuDestino.sort();
		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;
		}
	}

Caso algo mais seja necessário, é só me avisar.

Agradeço desde já pela ajuda pessoal :)

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...