Ir para conteúdo
Fórum Script Brasil
  • 0

Controlar loop asp com javascript


renatavp

Pergunta

Bom dia, rapazes. Vamos ver se alguém pode me ajudar?

Estou tentando remover campos que estão dentro de um loop vindo bd.

Os campos/registros:

<%

for i = 0 to (v)
 next
do while not rs.eof

itens = rs("itens")
codigo = rs("codigo")
valoru = rs("valoru")
icmsc = rs("icmsc")
outrasc = rs("outrasc")
precocu = rs("precocu")
quant = rs("quant")
subtotalc = rs("subtotalc")
valorv = rs("valorv")
icmsv = rs("icmsv")
comissao = rs("comissao")
outrasv = rs("outrasv")
impostosv = rs("impostosv")
precovu = rs("precovu")
subtotalv = rs("subtotalv")
icmsvvl = rs("icmsvvl")
comissaovvl = rs("comissaovvl")
impostosvvl = rs("impostosvvl")
outrosvvl = rs("outrosvvl")


%>
<div id="parentDiv">
<div id="childDiv<%=itens%>">
  <table width="1155" border="0" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px">
    <tr>
      <td width="20" height="25" bgcolor="#CCCCCC"><div align="left">
        <label>
          <input type="text" name="item<%=itens%>" id="item<%=itens%>" style="width:18px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#6699FF; border: #CCCCCC 1px solid" value="<%=itens%>"/>
          </label>
      </div></td>
      <td width="86" height="25" bgcolor="#CCCCCC"><div align="left">
        <input type="text" name="codigo<%=itens%>" id="codigo<%=itens%>" style="width:80px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#000000; border: #CCCCCC 1px solid; background-color:#CCCCCC" value="<%=codigo%>"/>
      </div></td>
      <td width="90" height="25" bgcolor="#CCCCCC"><div align="left">
        R$
            <input type="text" name="valoru<%=itens%>" id="valoru<%=itens%>;" style="width:70px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#000000; border: #CCCCCC 1px solid; background-color:#CCCCCC" value="<%=valoru%>" onChange="somac(<%=itens%>)" onBlur="orcamentoc()" />
      </div></td>
...
E assim por diante. Agora estou tentando criar uma função js pra deletar esses campos. A função:
<script type="text/javascript">
function removeElement(i){
var v = <%=v%>

    for (i=0;i<v;i++) {

          if (document.getElementById("childDiv"+i)) {     
          var childDiv = document.getElementById("childDiv"+i);
          var parent = document.getElementById("parentDiv");
          parent.removeChild(childDiv);
     }
     else {
          alert("Child div \n» "+i+"\nhas already been removed or does not exist.");
          return false;
     }
}

}
</script>
Que é chamada assim:
<input type="button" value="-" onClick="removeElement(<%=itens%>)">
Lembrando que os outros campos dinâmicos são adicionados com esse js:
<script language="JavaScript" type="text/javascript">   
var v = <%=v%> 

//Não altere esses valores!
var x = v+1
var i = 0;
var iCampos = 1;
var hiddenc; 

//Definindo quantos campos poderão ser criados (máximo);
var iCamposTotal = 30; 

//Função que adiciona os campos;
function addInput() {   
if (x <= iCamposTotal) {
    hiddenc = document.getElementById("hiddenc");
    
    //Criando uma variável que armazenará as informações da linha que será criada.
    //Os campos estão sendo colocados no interior de uma div, pois a linha contém muitos elementos;
    //Basta excluir a div, para excluir todos os elementos da linha;
    var texto = "<div id='linha"+x+"'><input type='hidden' name='texto"+x+"' id='texto"+x+"' value=''><table width='1155' border='0' cellpadding='2' cellspacing='2' bordercolor='#FFFFFF' style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px'><tr><td height='25' bgcolor='#CCCCCC'><div align='left'><label><input type='text' name='item"+x+"' id='item"+x+"' value='"+x+"' style='width:18px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9px; color:#6699FF' readonly='readonly'/></label></div></td>
(E por aí vai… mais isso:)
//Capturando a div principal, na qual os novos divs serão inseridos:
    var my_div = document.getElementById('my_div');   
    my_div.innerHTML = my_div.innerHTML+texto;
  
    //Escrevendo no hidden os ids que serão passados via POST;
    //No código ASP ou PHP, você poderá pegar esses valores com um split, por exemplo;
        if (hiddenc.value == "") {
            document.getElementById("hiddenc").value = x;
        }else{
            document.getElementById("hiddenc").value += ","+x;
        }
x++;
iCampos++;
}   
}
E deletados com esse js (que funciona, deleta):
//Função que remove os campos;
function removeInput(e) {
   var pai = document.getElementById('my_div');
   var filho = document.getElementById(e);
   hiddenc = document.getElementById("hiddenc");
   var campoValor = document.getElementById("texto"+e.substring(5)).value;
   var lastNumber = hiddenc.value.substring(hiddenc.value.lastIndexOf(",")+1);

   if(confirm("O item será excluído permanentemente!Deseja prosseguir?")){
        var removido = pai.removeChild(filho);
        //Removendo o valor de hiddenc:
        if (e.substring(5) == hiddenc.value) {
            hiddenc.value = hiddenc.value.replace(e.substring(5),"");
        }else if(e.substring(5) == lastNumber) {
            hiddenc.value = hiddenc.value.replace(","+e.substring(5),"");
        }else{
            hiddenc.value = hiddenc.value.replace(e.substring(5)+",","");        
        }
                               x--;
    iCampos--;
    }
}

Então, tenho que deletar os campos gerados pelo bd e diminuir o número de campos geral (ou seja: tem 10 campos no loop do bd + 2 dinâmicos = 12 campos geral. Se deletar 1 dinâmico, campos geral = 11. Ou, outra hipótese, se deletar 2 no loop do bd, campos geral = 10).

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...