Ir para conteúdo

Arquivado

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

tuhajo

Problemas com Split

Recommended Posts

Estou com um problema que tenho que resolver urgente mas não estou conseguindo. Alguém pode me ajudar???

É o seguinte:

Tenho um código onde, pra todo check existe um campo texto, só que o campo texto nem sempre precisa ser preechido qdo eu seleciono um item, ou seja, eu posso checar um item mas não colocar observação pra ele no campo texto.

 

Eu selecionei 3 itens de um total de 24 e dei um response.write, ele me retornou isso:

chk: 2,4,9

text: ,aaaaaa,,bbbbb,,,,,ccccccc,,,,,,,,,,,,,,,

 

Sendo que o valor aaaaaa, é do check 2... o valor bbbbb, é do check 4 e o valor ccccccc é do check 9.

 

Os checks, ele tá trazendo certo mas o text não.

 

O que pode ser???

 

Segue o código abaixo:

Tela de envio:

<tr bgcolor="#DADADA">
   <td colspan="2">TIPO DE ATIVIDADE</td>   
   <td colspan="3">OBSERVAÇÃO</td>
</tr>
<%sql_tipo_servico = "SELECT codigo, servico FROM servicos"
Set RsTipoServico = ConBanco.Execute (sql_tipo_servico) 
    if (not RsTipoServico.eof) then 
         while (not RsTipoServico.eof)         
               codTipoServico = RsTipoServico("codigo")         
               strTipoServico = RsTipoServico("servico")
%>
<tr>    
    <td><input name="chk_tipo_servico" type="checkbox" tabindex="16" value="<%=codTipoServico%"><%=strTipoServico%></td> 
    <td><input name="txtObsTipoServico" id="txtObsTipoServico" type="text" size="60" tabindex="17"></td>
</tr>
<%        RsTipoServico.movenext   
          wend
    end if
%>

Tela que recebe:

<% codTipoServico = request.Form("codTipoServico")
   chk_tipo_servico = split(request.Form("chk_tipo_servico"),",")
   txtObsTipoServico = split(request.Form("txtObsTipoServico"),",")

   For x=0 to UBound(chk_tipo_servico)           

          'Insere os serviços realizados na visita técnica.    
          serv_helpdesk = "INSERT INTO SERVICO_REALIZADO(cod_servico, servico, observacao) VALUES (nextval,'"&trim (chk_tipo_servico(x))&"','"&trim(txtObsTipoServico(x))&"')"
          Set RsServHelpDesk = ConBanco.execute(serv_helpdesk)   

   next
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O checkbox serão enviados somente os que estão marcados.

 

Já as input text, independente de preenchida ou não será enviada.

 

Uma saída é da para o nome da TEXT o valor da checkbox e recuperar de acordo com o checkbox selecionado.

 

Exemplo:

<td><input name="chk_tipo_servico" type="checkbox" tabindex="16" value="<%=codTipoServico%>"><%=strTipoServico%></td> 
    <td><input name="txtObsTipoServico<%=codTipoServico%>" id="txtObsTipoServico" type="text" size="60" tabindex="17"></td>
txtObsTipoServico =request.Form("txtObsTipoServico" & chk_tipo_servico(x))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Hargon,

 

Está dando este erro: Subscript out of range: '0'

 

Dei um response.write e trouxe isso:

chk: 2

txt: aaa

 

chk: 7

txt:

 

chk: 19

txt:

 

chk: 22

txt:

 

Sendo que digitei valor no txt pra todos os checks marcados.

 

Não tem como ligar o campo texto ao check para trazer só os txts das checks que foram marcadas?

 

Grata.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como ficou seu código depois da alteração?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como ficou seu código depois da alteração?

 

Ficou assim, tela de envio:

<tr bgcolor="#DADADA">
     <td colspan="2">TIPO DE ATIVIDADE</td>
     <td colspan="3">OBSERVAÇÃO</td>
</tr>
<%
sql_tipo_servico = "SELECT RV_LOW_VALUE, RV_MEANING FROM CG_REF_CODES WHERE UPPER(RV_DOMAIN) ='COD_SERVICO_HELP_DESK'"
Set RsTipoServico = ConBanco.Execute (sql_tipo_servico)
                                            
if (not RsTipoServico.eof) then
                                                
    while (not RsTipoServico.eof)
          codTipoServico = RsTipoServico("RV_LOW_VALUE")
          strTipoServico = RsTipoServico("RV_MEANING")
%>
<tr>
     <td colspan="2"><input name="chk_tipo_servico" type="checkbox" tabindex="16" value="<%=codTipoServico%>"><%=strTipoServico %></td>
     <td colspan="3"><input name="txtObsTipoServico<%=codTipoServico%>" id="txtObsTipoServico" type="text" size="60" tabindex="17"></td>
</tr>
<%
     RsTipoServico.movenext
     wend
end if
%>

Tela que recebe:

<%
chk_tipo_servico = split(request.Form("chk_tipo_servico"),",")

For x=0 to UBound(chk_tipo_servico)

    txtObsTipoServico  = request.Form("txtObsTipoServico" & chk_tipo_servico(x))
   
  
    'Insere os serviços realizados na visita técnica.
    serv_helpdesk = "INSERT INTO SERVICO_REALIZADO_HELP_DESK(NUM_SEQ_VISITA_TECNICA, COD_SERV_HELP_DESK, DSC_OBS_SERV_HELP_DESK, DAT_INCL, INTMATRICULA_INCL) VALUES ("&strNumSeq&",'"&trim(chk_tipo_servico(x))&"','"&txtObsTipoServico&"',SYSDATE,'"&txtMatricTecnico&"')"
    'Set RsServHelpDesk = ConBanco.execute(serv_helpdesk)
   
next
%>

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.