Ir para conteúdo

POWERED BY:

Arquivado

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

Ninja2112

Enviar dados de um form p/servlet

Recommended Posts

Olá, pessoal...tenho uma dúvida:

 

Tenho uma página html com um form de 6 campos, sendo que os dois últimos são de preenchimento

recursivo, ou seja, campos text multivalor com sequencia de números p/ alimentar 2 arrays (um p/cada campo text).

Tenho então 4 campos com dados únicos e 2 arrays para enviar ao meu servlet.

Como posso implementar isso ? Estou tentando c/javascript / jquery.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não entendi a dúvida. Você pode obter os parâmetros por meio nome que der a eles.

Tendo no seu HTML:

<input type='text' name='nomes[]'/>

No Servlet você pode obtê-los assim:

String nome[] = request.getParameterValues("nomes");

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Acho que não entendi a dúvida. Você pode obter os parâmetros por meio nome que der a eles.

Tendo no seu HTML:

<input type='text' name='nomes[]'/>

No Servlet você pode obtê-los assim:

String nome[] = request.getParameterValues("nomes");

Esses dois campos text irão receber vários valores, a critério de quem irá digitá-los..pensei em armazená-los em um array. Assim, vale essa implementação acima ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia postar um exemplo de como está o HTML e como está fazendo para enviar os dados

Consegui usando página php...está assim na página que envia ():


$(document).ready(function(){
var cont = 0;
var dosvalidas = new Array(100); //Array pré-alocado(gostaria de fazer alocação dinâmica, como um arraylist)
var valor = "";

$(':button').click(function(){ valor = $('#txtdovalida').val(); //Valor=0 pula o campo if(valor == 0){ document.frmentdos.txtdonula.focus(); }else{ if(valor == ""){ alert('PREENCHA O CAMPO'); document.frmentdos.txtdovalida.focus(); }else{ dosvalidas[cont]=valor; cont = cont + 1; txtdovalida.value=''; document.frmentdos.txtdovalida.focus(); } document.getElementById("hidvetor").value = dosvalidas.join("|"); } });

});

HTML:

<form name='frmentdos' method='post' action='recep1.php'>
  <fieldset>
  <legend>ENTRADA DE DO'S:</legend>
  <label for='estab'>Estabel/Médico:</label>
  <select>
  <option value='estabel1'>Estabel1</option>
  <option value='estabel1'>Estabel1</option>
  <option value='estabel1'>Estabel1</option>
  </select>
  <br>
  <label for='resp'>Responsável:</label>
  <select>
  <option value='resp1'>Resp1</option>
  <option value='resp1'>Resp1</option>
  <option value='resp1'>Resp1</option>
  </select>
  <br>
  <label for='servidor'>Servidor:</label>
  <select>
  <option value='estabel1'>Serv1</option>
  <option value='estabel1'>Serv1</option>
  <option value='estabel1'>Serv1</option>
  </select>
  <br>
  <label for='data'>Data:</label>
  <input type='text' id='txtdata' name='txtdata'/><br>
  <label for='dovalida'>DO's Válidas:</label>
  <input type='text' id='txtdovalida'/>
  <input type='button' name='btndovalida' value='FINALIZAR'>" 
  <input type="hidden" name="hidvetor" id="hidvetor" value="">
  <br>
  <label for="donula">DO's Nulas:</label>
  <input type="text" id="txtdonula" name="txtdonula"/>
  <input type="button" name="btndonula" onclick="" value="FINALIZAR">
  <br />
  <br/><br/>
  <input type="submit" value="ENVIAR"/>
  <input type="button" onclick="" value="LIMPAR"/>
  </fieldset>
  
</form>

Teste na página que recebe(será o servlet):

<center><h3>CONFIRMAÇÃO DO ENVIO</h3></center>
<?php 
     echo "<br>";
     $vetor = explode("|", $_POST['hidvetor']);
     print_r($vetor);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você está explicando as coisas de forma errada.

Nesse caso você não está enviando um array e sim uma string onde está considerando o caractere " | " como separador.

 

Então poderia fazer assim, seu HTML:

<form action='recep1' method='post'>
   <!-- outros inputs -->
   <input type='text' name='hidvetor'/>
   <button type='submit'> Enviar </button>
</form>

No servlet ficaria assim:

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet(name="Recep", urlPatterns={"/recep1"})
public class Recep extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        
        String vetor[] = req.getParameter("hidvetor").split("|");
        // Faz algo com vetor
    }
}

É claro que isso é apenas um exemplo, você deve verificar se o valor não é nulo antes de tentar manipular.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok...vou passar o javascript mais estruturado...minha dúvida é como o "hidvetor" vai receber

o array, que nesse caso é transformado em string com separador.

$(document).ready(function(){
   var cont = 0;
   var dosvalidas = new Array(100); //Array pré-alocado(gostaria de fazer alocação dinâmica, como um    arraylist)
   var valor = "";
   $(':button').click(function(){ 
      valor = $('#txtdovalida').val(); 
      //Valor=0 pula o campo 
      if(valor == 0){ 
         document.frmentdos.txtdonula.focus(); 
         }else{ 
              if(valor == ""){ 
              alert('PREENCHA O CAMPO'); 
              document.frmentdos.txtdovalida.focus(); 
              }else{ 
              dosvalidas[cont]=valor; 
              cont = cont + 1; 
              txtdovalida.value=''; 
              document.frmentdos.txtdovalida.focus(); 
              } 
              document.getElementById("hidvetor").value = dosvalidas.join("|"); 
      } 
   });
});

Compartilhar este post


Link para o post
Compartilhar em outros sites
<input type='text' value='a|e|i|o|u'/>    

<script>
  var vogais = "" + document.querySelector('input').value;

  var array = [];
  vogais.split("|").forEach(function(e){
    array.push(e);
  });
  
  // array[ a , e , i , o , u ]
</script>

DEMO

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.