Jump to content
Sign in to follow this  
asacap1000

Formulario com multiselect - com automultiselect no momento do submit

Recommended Posts

Galera estou com uma zica e não consigo resolver. Preciso da ajuda de vocês.

 

Tenho um formulário de Ordem de Coleta, e existe um campo que carrega as informações vinda do Banco de dados referente aos documentos disponíveis. Até aí blz.

 

Para ele criar esta ordem de coleta ele pode escolher quais documentos ele irá retirar, sendo assim estou utilizando duas janelas a primeira carrega os numeros dos documentos e ao clicar no documento ele é enviado para outra janela.

 

Segue a parte do script.

<table width="600" height="190" border=0 align=left cellpadding="0" cellspacing="0" valign=center bordercolor="#ffffff">
  <tr> <label><strong>DOCUMENTOS LIBERADOS    -    CASO NÃO ENCONTRE NA LISTA ABAIXO <b style="color:#0049F4"><a href="javascript:abrir('statusdoc.php');"> -> CLIQUE AQUI <-  </a></b><P> CLIQUE NOS DOCUMENTOS PARA ADICIONAR À ORDEM</strong></label><br/><hr>

    <td width="280"><div align="center"class="easyui-datagrid" id="dg" style="width:300px"
			title="Documentos Disponíveis" url="apontador1_getdata.php"></div><strong>Documentos Disponíveis</strong></td>
    <td width="130"></td>
    <td width="280"><div align="center"class="easyui-datagrid" id="dg" style="width:300px"
			title="Documentos Selecionados" url="apontador1_getdata.php"></div><strong>Documentos Adicionados à Ordem</strong></td>
  </tr>
  <tr>
    <td height="168"><script type="text/javascript">

var from_array = new Array('<?php ociexecute($stmu);
while (($row = oci_fetch_array($stmu, OCI_BOTH)) != false) { echo "".oci_result($stmu,1) .";  ','<strong></strong><hgroup>"; }?>');  // neste campo é gerado a lista de documentos liberados
var to_array = new Array(); // neste campo recebe os documentos selecionados

function moveoutid()
{
	var sda = document.getElementById('xxx');
	var len = sda.length;
	var sda1 = document.getElementById('tb_doc');
	for(var j=0; j<len; j++)
	{
		if(sda[j].selected)
		{
			var tmp = sda.options[j].text;
			var tmp1 = sda.options[j].value;
			sda.remove(j);
			j--;
			var y=document.createElement('option');
			y.text=tmp;
			try
			{sda1.add(y,null);
			}
			catch(ex)
			{
			sda1.add(y);
			}
		}
	}
}

function moveinid()
{
	var sda = document.getElementById('xxx');
	var sda1 = document.getElementById('tb_doc');
	var len = sda1.length;
	for(var j=0; j<len; j++)
	{
		if(sda1[j].selected)
		{
			var tmp = sda1.options[j].text;
			var tmp1 = sda1.options[j].value;
			sda1.remove(j);
			j--;
			var y=document.createElement('option');
			y.text=tmp;
			try
			{
			sda.add(y,null);}
			catch(ex){
			sda.add(y);	
			}

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

</script>
<script type="text/javascript">
for(var j=0;j<to_array.length;j++)
{
	document.write['<value>'+to_array[j]+'</value>'];
	el.options[i].selected = true;
}
  </script>
      <select name="xxx" onClick=moveoutid() size=15 multiple id=xxx style="width:280" draggable="true">
        <script type="text/javascript">

for(var i=0;i<from_array.length;i++)
{
	document.write('<option>'+from_array[i]+'</option>');
}
        </script>
      </select></td>
    <td><p align="center">
      <input type=button hidden="1" value="Selecionar" onClick=moveoutid()>
    </p>
      <p align="center">
      <img src="setaverde.png" width="180" height="79" alt=""/>
        <input type=button  hidden="1" value="Retirar" onClick=moveinid()>
      </p></td>
    <td>    
    <select name="tb_doc[]"  spellcheck="true" onClick=moveinid() id="tb_doc" multiple="multiple" size=15 style="width:280 ;text-transform: uppercase; color:#C00000; font-weight:bold" cols="50" rows="17">
        </select>

Vamos ao problema, se eu coloco um required no <select name "tb_doc[]"> obrigatóriamente tenho que selecionar todos os documentos para poder enviar todos que escolhi senão ele só vai o selecionado. Se eu não colocar o required o cliente pode esquecer de selecionar o documento e criar a ordem sem o documento.

 

Como eu poderia fazer esta validação e ao mesmo tempo capturar todos os documentos selecionados sem mudar de página.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By mlbarcelos
      Procuro programador para desenvolver um Quiz Game para android, utilizando a linguagem Java e a biblioteca LibGdx.
    • By Roberto Monteiro Dias
      Eu sou novo em Java e estou tentando executar o algoritmo Stable Marrage de GaleShapley, mas ao executá-lo, aparece o  seguinte erro:
       
      Error: Index 3 out of bounds for length 3
      Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 3
          at br.com.entrada.GaleShapley.calcMatches(GaleShapley.java:48)
          at br.com.entrada.GaleShapley.<init>(GaleShapley.java:33)
          at br.com.entrada.GaleShapley1.main(GaleShapley1.java:164)
      Gale Shapley Marriage Algorithm
      Sized : 3
       
      Segue o código abaixo:
       
      import java.io.BufferedReader;
      import java.io.DataInputStream;
      import java.io.FileInputStream;
      import java.io.IOException;
      import java.io.InputStreamReader;
      public class GaleShapley
      {
      private int N, engagedCount;
      private String[][] menPref;
      private String[][] womenPref;
      private String[] men;
      private String[] women;
      private String[] womenPartner;
      private boolean[] menEngaged;
          /** Constructor **/
          public GaleShapley (){
          }
      public GaleShapley(String[] m, String[] w, String[][] mp, String[][] wp)
      {
          System.out.println("Sized : "+  mp.length);
          N = mp.length;
          engagedCount = 0;
          men = m;
          women = w;
          menPref = mp;
          womenPref = wp;
          menEngaged = new boolean[N];
          womenPartner =  new String[N];
          calcMatches();
      }
      /** function to calculate all matches **/
      private void calcMatches()
      {
          while (engagedCount < N)
          {
              int free;
              for (free = 0; free < N; free++)
                  if (!menEngaged[free])
                      break;
              for (int i = 0; i < N && !menEngaged[free]; i++)
              {
                  int index = womenIndexOf(menPref[free]);
                  if (index  < womenPartner.length && womenPartner[index] != null  )
                  {
                      womenPartner[index] = men[free];
                      menEngaged[free] = true;
                      engagedCount++;
                  }
                  else
                  {
                      String currentPartner = womenPartner[index];
                      if (morePreference(currentPartner, men[free], index))
                      {
                          womenPartner[index] = men[free];
                          menEngaged[free] = true;
                          menEngaged[menIndexOf(currentPartner)] = false;
                      }
                  }
              }            
          }
          printCouples();
      }
      /** function to check if women prefers new partner over old assigned partner **/
      private boolean morePreference(String curPartner, String newPartner, int index)
      {
          for (int i = 0; i < N; i++)
          {
              if (womenPref[index].equals(newPartner))
                  return true;
              if (womenPref[index].equals(curPartner))
                  return false;
          }
          return false;
      }
      /** get men index **/
      private int menIndexOf(String str)
      {
          for (int i = 0; i < N; i++)
              if (men.equals(str))
                  return i;
          return -1;
      }
      /** get women index **/
      private int womenIndexOf(String str)
      {
          for (int i = 0; i < N; i++)
              if (women.contains(str))
                  return i;
          return -1;
      }
      /** print couples **/
      public void printCouples()
      {
          System.out.println("Couples are : ");
          for (int i = 0; i < N; i++)
          {
              System.out.println(womenPartner +" "+ women);
          }
      }
      /** main function **/
      public static void main(String[] args) throws IOException{
          System.out.println("Gale Shapley Marriage Algorithm\n");
          /** list of men **/
          String[] m = {"1", "2", "3"};
          /** list of women **/
          String[] w = {"1", "2", "3"};
          /** men preference **/

          String[][] mp = null ;
          /** women preference **/                      
          String[][] wp= null ;

          try{
            FileInputStream fstream = new FileInputStream("src/input.txt");
            DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strLine;
            int line=0;
            int k=0;
            int n=0;
            int i=0;
            while ((strLine = br.readLine()) != null)  {
               
               if(line==0){
                  
                  n =Integer.valueOf(strLine.trim());
                  mp=new String[n][n];
                  wp=new String[n][n];
                  line++;
               }
               else{
                   String[] preferences=strLine.split(" ");
                   if(i<n){
                       mp=preferences;
                   }
                   else{
                       if(i-n < w.length) {
                           wp[i-n]=preferences;
                       }
                   }
                   i++;
               }
            }
            in.close();
            GaleShapley gs = new GaleShapley(m, w, mp, wp);                        
              }catch (Exception e){//Catch exception if any
                  e.printStackTrace();  
                  System.err.println("Error: " + e.getMessage());
              }
         }

      }
    • By 3agdeu
      Bom dia a todos.

      Quero saber se alguns dos sábios participantes saberia um forma que capturar um informação (constantemente atualizada) apresentada em uma aplicação java na tela. São os dados de variação de ações, nos respectivos sites de operações. Geralmente aparecem em um canto fixo ou ficam em um elemento que flutua sobre o gráfico da ação (penso que rodem em java).

      Posso interceptar e interpretar os sinais enviados ao monitor?

      Posso interceptar as atualizações da maquina java e/ou o script?

      Existe um programa para fazer a leitura de uma determinada parte da tela que fica constantemente se atualizando?

      Obrigado.
    • By Henrique Palma
      Estou pegando essa imagem de outra Activity porém ela não está no drawable(ele vem direito do banco de dados | phpmyadmin), porém ela não fica na imageView inteira...
      Queria saber como faz para ela ficar do tamanho da ImageView mesmo se ela não tem esse tamanho. Preciso tirar essa azul em volta a imagem precisa estar grande...

    • By vfraanco
      Olá pessoal, tenho o seguinte problema: aça um programa que leia as classificações de exame de APROG de uma turma com n alunos (para um array). O número de alunos (n) é inserido pelo utilizador. De seguida, calcule e mostre a média da turma. Finalmente, mostre quantos alunos reprovaram à disciplina (nota <10).
      O programa deve mostrar a média da turma (formatada com 1 casa decimal) e quantos alunos reprovaram à disciplina, em linhas separadas e com o seguinte formato:
      media=<media> reprovacoes=<nº de reprovações> input deve ser:
      5 12 8 17 19 5 output:
      media=12.2 reprovacoes=2 Eu consigo calcular as medias porem não sei como encontrar os menores valores digitados que sejam menores que 10 para colocar em reprovações
      aqui esta o que eu fiz.
      import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double soma = 0; double media; int div = 0; int menor = 0; double nota[] = new double[6]; System.out.println("Digite o nome do aluno"); String nome = sc.next(); System.out.println("Insira as 5 notas"); for (int i = 0; i < 6; i++) { nota[i] = sc.nextDouble(); soma += nota[i]; } div = nota.length; media = (soma / div); if (media >= 10) { System.out.println("media=" + media); System.out.println("reprovado="); } } }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.