Ir para conteúdo

Arquivado

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

tuhajo

Receber valores concatenados

Recommended Posts

Pela lógica seria fazer apenas:

 

chk_sistema = Request.Form("chk_sistema")
rad_grau_sistema = Request.Form("rad_grau_sistema_" & chk_sistema)
txtDescTela = Request.Form("txtDescTela")
Poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pela lógica seria fazer apenas:

 

chk_sistema = Request.Form("chk_sistema")
rad_grau_sistema = Request.Form("rad_grau_sistema_" & chk_sistema)
txtDescTela = Request.Form("txtDescTela")
Poste o resultado.

 

deu esse erro:

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: 'rad_grau_sistema'

 

/intranet/visita_tecnica/formulario_save.asp, line 63

 

essa linha é do insert que está em negrito:

For t=0 To UBound(chk_sistema)

  'Insere o grau de indisponibilidade dos sistemas na tabela de ASSOC_VISITA_TECNICA_SISTEMA.
    tabela_associacao = "INSERT INTO ASSOC_VISITA_TECNICA_SISTEMA(NUM_SEQ_VISITA_TECNICA, COD_SISTEMA, COD_GRAU_INDISP, DSC_TELA_INDISP, DAT_INCL, INTMATRICULA_INCL) VALUES ("&strNumSeq&","&trim(chk_sistema[b](t))&",'"&trim(rad_grau_sistema(t))&"','"&trim(txtDescTela(t))&"',SYSDATE,'"&txtMatricTecnico&"')"[/b]
  Set RsAssociacao = ConBanco.execute(tabela_associacao)
    
    
next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como é um valor apenas que está sendo recuperado, não precisa utilizar UBOUND, FOR e acessar as variáveis como vetor, utilizando -> (t)

 

Faça essas alterações e poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como é um valor apenas que está sendo recuperado, não precisa utilizar UBOUND, FOR e acessar as variáveis como vetor, utilizando -> (t)

 

Faça essas alterações e poste o resultado.

 

 

Mil desculpas... informei errado... eu recupero mais de 1 valor... na verdade, são 35 linhas geradas no for e eu posso selecionar alguma delas, até concatenei no request mas continua dando o erro. Vou te passar o código todo pra você entender.

Tela de envio dos dados:

<tr>
   <td><input name="chk_sistema" tabindex="18" type="checkbox" value="<%=codSistemas%>"><%=strSistemas%></td>
   <td><input name="rad_grau_sistema<%=codSistemas%>" type="radio" value="T"> TOTAL</td>
   <td><input name="rad_grau_sistema<%=codSistemas%>" type="radio" value="P"> PARCIAL</td> 
   <td colspan="2"><input name="rad_grau_sistema<%=codSistemas%>" type="radio" class="radio" value="E"> TELA
    <input name="txtDescTela" id="txtDescTela" type="text" size="25" disabled>
   <input type="hidden" name="codSistemas" value="<%=codSistemas%>" />                                                                                            
  </td>                                
</tr>

Tela que recebe os dados:

codSistemas          = request.form("codSistemas")
chk_sistema          = split(request.Form("chk_sistema"),",")
rad_grau_sistema     = split(Request.Form("rad_grau_sistema"&codSistemas),",")
txtDescTela          = split(request.Form("txtDescTela"),",")

For t=0 To UBound(chk_sistema)

   'Insere o grau de indisponibilidade dos sistemas na tabela de ASSOC_VISITA_TECNICA_SISTEMA.
   tabela_associacao = "INSERT INTO ASSOC_VISITA_TECNICA_SISTEMA(NUM_SEQ_VISITA_TECNICA, COD_SISTEMA, COD_GRAU_INDISP, DSC_TELA_INDISP, DAT_INCL, INTMATRICULA_INCL) VALUES ("&strNumSeq&","&trim(chk_sistema(t))&",'"&trim(rad_grau_sistema(t))&"','"&trim(txtDescTela(t))&"',SYSDATE,'"&txtMatricTecnico&"')"
   Set RsAssociacao = ConBanco.execute(tabela_associacao)    
    
next

Compartilhar este post


Link para o post
Compartilhar em outros sites

rad_grau_sistema = split(Request.Form("rad_grau_sistema"&codSistemas),",")

 

A linha acima deve ficar dentro do FOR e você deve substituir codSistemas por chk_sistema(t).

 

Será necessário criar um novo FOR, após transformar rad_grau_sistema em VETOR e o INSERT deve ficar dentro deste FOR.

Compartilhar este post


Link para o post
Compartilhar em outros sites

rad_grau_sistema = split(Request.Form("rad_grau_sistema"&codSistemas),",")

 

A linha acima deve ficar dentro do FOR e você deve substituir codSistemas por chk_sistema(t).

 

Será necessário criar um novo FOR, após transformar rad_grau_sistema em VETOR e o INSERT deve ficar dentro deste FOR.

 

Essa linha continua assim?

<tr>
   <td><input name="chk_sistema" tabindex="18" type="checkbox" value="<%=codSistemas%>"><%=strSistemas%></td>
   <td><input name="rad_grau_sistema<%=codSistemas%>" type="radio" value="T"> TOTAL</td>
   <td><input name="rad_grau_sistema<%=codSistemas%>" type="radio" value="P"> PARCIAL</td> 
   <td colspan="2"><input name="rad_grau_sistema<%=codSistemas%>" type="radio" class="radio" value="E"> TELA
    <input name="txtDescTela" id="txtDescTela" type="text" size="25" disabled>
   <input type="hidden" name="codSistemas" value="<%=codSistemas%>" />                                                                                            
   </td>                                
</tr>

Eu deixei o form como está acima e coloquei o código abaixo e continua dando erro:

chk_sistema = split(request.Form("chk_sistema"),",")
txtDescTela = split(request.Form("txtDescTela"),",")

For t=0 To UBound(chk_sistema)

    rad_grau_sistema = split(Request.Form("rad_grau_sistema"&chk_sistema(t)),",") 
    
    for z=0 to UBound(rad_grau_sistema)
        'Insere o grau de indisponibilidade dos sistemas na tabela de ASSOC_VISITA_TECNICA_SISTEMA.
        tabela_associacao = "INSERT INTO ASSOC_VISITA_TECNICA_SISTEMA(NUM_SEQ_VISITA_TECNICA, COD_SISTEMA, COD_GRAU_INDISP, DSC_TELA_INDISP, DAT_INCL, INTMATRICULA_INCL) VALUES ("&strNumSeq&","&trim(chk_sistema(t))&",'"&rad_grau_sistema(z)&"','"&trim(txtDescTela(t))&"',SYSDATE,'"&txtMatricTecnico&"')"
        Set RsAssociacao = ConBanco.execute(tabela_associacao)
    
    next
next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste sempre o erro que deu, assim podemos acompanhar se o erro mudou, ou se é o mesmo.

 

Que erro apareceu agora? O campo txtDescTela possibilita informar vírgula?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste sempre o erro que deu, assim podemos acompanhar se o erro mudou, ou se é o mesmo.

 

Que erro apareceu agora? O campo txtDescTela possibilita informar vírgula?

 

O erro que dá é este: Subscript out of range: '1'

 

O campo txt possibilita vírgula sim, pois toda vez que selecionarem o radio "tela", este campo tem q ser preenchido. Então se selecionarem vários radio "tela", os txts do mesmo terá que ser preenchido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que postar a linha do erro, além de posta a mensagem.

 

Sobre possibilitar inserir vírgula, isso vai ser um problema para você, pois se você utiliza a vírgula para transforma em Array, se o usuário informar vírgula no campo, quando utilizar SPLIT, você terá uma vírgula a mais, o que fará com que seu array tenha uma posição a mais e fique desordenado. Nesse caso a melhor opção é utilizar da mesma forma que você fez com o campo rad_grau_sistema_

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que postar a linha do erro, além de posta a mensagem.Sobre possibilitar inserir vírgula, isso vai ser um problema para você, pois se você utiliza a vírgula para transforma em Array, se o usuário informar vírgula no campo, quando utilizar SPLIT, você terá uma vírgula a mais, o que fará com que seu array tenha uma posição a mais e fique desordenado. Nesse caso a melhor opção é utilizar da mesma forma que você fez com o campo rad_grau_sistema_

O erro q estava dando era no response.write q estava antes do for, q eu coloquei pra imprimir o resultado na tela. Comentei essa linha e na verdade ele não está nem entrando no segundo for. :ermm:

Você tem que postar a linha do erro, além de posta a mensagem.Sobre possibilitar inserir vírgula, isso vai ser um problema para você, pois se você utiliza a vírgula para transforma em Array, se o usuário informar vírgula no campo, quando utilizar SPLIT, você terá uma vírgula a mais, o que fará com que seu array tenha uma posição a mais e fique desordenado. Nesse caso a melhor opção é utilizar da mesma forma que você fez com o campo rad_grau_sistema_

Qto a virgula, entendi errado, digitar virgula não vai ser possivel.O erro q estava dando era no response.write q estava antes do for, q eu coloquei pra imprimir o resultado na tela. Comentei essa linha e na verdade ele não está nem entrando no segundo for. :ermm:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte:

codSistemas          = request.form("codSistemas")
chk_sistema          = split(request.Form("chk_sistema"),",")
rad_grau_sistema     = Request.Form("rad_grau_sistema"&codSistemas)
txtDescTela          = split(request.Form("txtDescTela"),",")

For t=0 To UBound(chk_sistema)

   'Insere o grau de indisponibilidade dos sistemas na tabela de ASSOC_VISITA_TECNICA_SISTEMA.
   tabela_associacao = "INSERT INTO ASSOC_VISITA_TECNICA_SISTEMA(NUM_SEQ_VISITA_TECNICA, COD_SISTEMA, COD_GRAU_INDISP, DSC_TELA_INDISP, DAT_INCL, INTMATRICULA_INCL) VALUES ("&strNumSeq&","&trim(chk_sistema(t))&",'"&trim(rad_grau_sistema)&"','"&trim(txtDescTela(t))&"',SYSDATE,'"&txtMatricTecnico&"')"
   Set RsAssociacao = ConBanco.execute(tabela_associacao)    
    
next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte:

codSistemas          = request.form("codSistemas")
chk_sistema          = split(request.Form("chk_sistema"),",")
rad_grau_sistema     = Request.Form("rad_grau_sistema"&codSistemas)
txtDescTela          = split(request.Form("txtDescTela"),",")

For t=0 To UBound(chk_sistema)

   'Insere o grau de indisponibilidade dos sistemas na tabela de ASSOC_VISITA_TECNICA_SISTEMA.
   tabela_associacao = "INSERT INTO ASSOC_VISITA_TECNICA_SISTEMA(NUM_SEQ_VISITA_TECNICA, COD_SISTEMA, COD_GRAU_INDISP, DSC_TELA_INDISP, DAT_INCL, INTMATRICULA_INCL) VALUES ("&strNumSeq&","&trim(chk_sistema(t))&",'"&trim(rad_grau_sistema)&"','"&trim(txtDescTela(t))&"',SYSDATE,'"&txtMatricTecnico&"')"
   Set RsAssociacao = ConBanco.execute(tabela_associacao)    
    
next

Deu erro no insert:

cannot insert NULL into ("INTRANET"."ASSOC_VISITA_TECNICA_SISTEMA"."COD_GRAU_INDISP")

 

que é justamente o rad_grau_sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua instrução INSERT, para ver o que esta sendo passado....

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua instrução INSERT, para ver o que esta sendo passado....

 

 

Tá passando vazio... o input não está enviando nada mas se eu tirar o valor concatenado, ele envia... mas só 1 linha.

Eu to selecionando 3 linhas, ele só tá inserindo a última que eu seleciono... mas dá erro de campo null.

 

INSERT INTO ASSOC_VISITA_TECNICA_SISTEMA(NUM_SEQ_VISITA_TECNICA, COD_SISTEMA, COD_GRAU_INDISP, DSC_TELA_INDISP, DAT_INCL, INTMATRICULA_INCL) VALUES (1043,39,'','tela',SYSDATE,'888135')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não está recuperando o codSistemas .

 

Faça assim:

chk_sistema = split(request.Form("chk_sistema"),",")
codSistemas = chk_sistema
rad_grau_sistema = Request.Form("rad_grau_sistema"&codSistemas)
txtDescTela = split(request.Form("txtDescTela"),",")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não está recuperando o codSistemas .

 

Faça assim:

chk_sistema = split(request.Form("chk_sistema"),",")
codSistemas = chk_sistema
rad_grau_sistema = Request.Form("rad_grau_sistema"&codSistemas)
txtDescTela = split(request.Form("txtDescTela"),",")

Testei do jeito que estava e do jeito que você falou e ele está trazendo o codSistemas sim.

Ele não traz é o valor do rad_grau_sistema mesmo.

O insert que ele trouxe está errado.

Eu selecionei 3 chks. Era pra ele trazer da seguinte forma:

chk=18, rad=18 e txt=vazio

chk=44, rad=44 e txt=vazio

chk=48, rad=48 e txt=teste

 

Ele trouxe conforme abaixo no insert: chk=18, rad=vazio e txt=teste

INSERT INTO ASSOC_VISITA_TECNICA_SISTEMA(NUM_SEQ_VISITA_TECNICA, COD_SISTEMA, COD_GRAU_INDISP, DSC_TELA_INDISP, DAT_INCL, INTMATRICULA_INCL) VALUES (1061,18,'','tela',SYSDATE,'888135')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, eu sei que essa dúvida parece ser bem fácil de resolver mas já tentei de todas as formas e não consigo.

Vou ser bem direta no problema.

Estou passando um valor concatenado no input mas estou recebendo valor nulo. O que pode ser???

O código é este:

<tr>
   <td><input name="chk_sistema" tabindex="18" type="checkbox" value="<%=codSistemas%>"><%=strSistemas%></td>
   [b]<td><input name="rad_grau_sistema<%=codSistemas%>" type="radio" value="T"> TOTAL</td>
   <td><input name="rad_grau_sistema<%=codSistemas%>" type="radio" value="P"> PARCIAL</td> 
   <td colspan="2"><input name="rad_grau_sistema<%=codSistemas%>" type="radio" class="radio" value="E"> TELA[/b]    <input name="txtDescTela" id="txtDescTela" type="text" size="25" disabled>
   <input type="hidden" name="codSistemas" value="<%=codSistemas%>" />
   </td>                                
</tr>
Os campo em negrito é que estão indo nulos. Sendo que o codSistemas está passando valor.

Estou recebendo da seguinte maneira:

codSistemas          = request.form("codSistemas")
chk_sistema          = split(request.Form("chk_sistema"),",")
rad_grau_sistema     = Request.Form("rad_grau_sistema"&codSistemas)
txtDescTela          = split(request.Form("txtDescTela"),",")

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua variavel para ver o que esta passando, e isso ja aconteceu comigo, simplesmente , apenas exclui o campo e crie novamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua variavel para ver o que esta passando, e isso ja aconteceu comigo, simplesmente , apenas exclui o campo e crie novamente

 

Dei o response e ele não trouxe nada.

Fiz tbm o que você falou e nada, continua vindo vazio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você esta usando no formulario o action esta como POST

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.