Concatenando String[resolvido]

4 respostas
W

Boa tarde galera,

Seguinte, sei que aqui é um fórum para JAVA, mas estou precisnado de uma ajuda com JAVASCRIPT.

O caso é o seguinte.

Estou fazendo um aplicação que usa JSON como requisição e resposta.
Meu struts manda uma string com todos os campos do meu formulario:

pars = "[{'acao': 'ler','tag':['pessoa','clNome','tipo','tpPessoa']}]";      
//esta string retorna para meu JSP e guardo em um hidden

Com ajuda desta string no JavaScript eu pego os valores do formulario;

//pego do hidden, onde pars é meu hidden
var pars = eval(document.getElementById("pars").value);

//começo a montar minha string novamente
      var json1 = "{tag:[";
      var json2  = "";
      var contador = 0;

//faço o loop no meu formulario buscando os campos e vendo qual esta preenchido     
      for (i = 0; i < pars[0].tag.length; i++){
        if(document.getElementById(pars[0].tag[i]).value != ""){
          json1 += "'"+vo+"."+pars[0].tag[1]+"'";
        }  
      }

E ai esta o problema.
Eu preciso que esta String seja concatenada assim:

"tag": ["mcg.codigo","mcg.nome","mcg.fone"];

Mas não estou conseguindo bolar uma lógica para colocar a virgula quando for mais de um valor.
A virgula entraria só quando tivesse mais de 1 valor. Se houvesse 1 valor só não colocaria ",".

Sera que alguem pode me ajudar???

VALEU

4 Respostas

F


tem várias maneiras uma tosquinha seria.

for (i = 0; i < pars[0].tag.length; i++){   
      
  if(document.getElementById(pars[0].tag[i]).value != ""){   
       if(pars[0].tag.length == 1){
          json1 += "'"+vo+"."+pars[0].tag[1]   
       }else{
          json1 += "'"+vo+"."+pars[0].tag[1]+"'";   
      }
   }     
}
W

Cara não entendi esta sua sugestão.
E se for seguir sua logica não daria.
Pois esta string que vem do Java ela é tipo um array. Se tu coloca engessado o 1 ele só vai buscar um valor do formulario, não vai ser distinto.

Ex.
Se há dois campos no formulario, nome, idade e cidade. A posição 0 = nome e a posição 1 = idade 2 =cidade.
Tu colocando um, mesmo que a pessoa preencha a cidade ele não vai pegar pois esta na posição 1…

Valeu pela sujestão…
FLW

F

mesmo assim ainda não entendi…

não pode ser assim ?

pars[0].tag[i].length
W

Cara valeu por sua ajuda.
As suas sujestões não eram as que eu estava precisando…mas mesmo assim agradeço muito

aqui ta a resposta do meu loop com a concatenação com a virgula.

for (i = 0; i < pars[0].tag.length; i++){
    if(document.getElementById(pars[0].tag[i]).value != ""){
       contador++;
          if(contador == 1){
             json1Inicio += "'"+vo+"."+pars[0].tag[i]+"'";
             json2Inicio += "'"+document.getElementById(pars[0].tag[i]).value+"'";
          }else{
             json1Inicio += ",'"+vo+"."+pars[0].tag[i]+"'";
             json2Inicio += ",'"+document.getElementById(pars[0].tag[i]).value+"'";
          }
    }    
}

Valeu…té

Criado 13 de novembro de 2008
Ultima resposta 14 de nov. de 2008
Respostas 4
Participantes 2