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

Deletando linha da tabela


panox

Pergunta

Ola, eu estou criando uma tabela atraves do JS com esta função :

var i = 1;

  function Insere(){


var x=document.getElementById('tabela').insertRow(1)
var qt=x.insertCell(0)
var uni=x.insertCell(0)
var desc=x.insertCell(0)
var bar=x.insertCell(0)
var ape=x.insertCell(0)

qt.innerHTML='<input type="hidden" name="qtd'+i+'" value="'+document.getElementById("qtd2").value+'">'+
 '<input type="hidden" name="contador"      id="contador" value="1">' +
 '<input type="hidden" name="zero'+i+'"     id="zero'+i+'" value="0">' +
 '<input type="hidden" name="numreq'+i+'"    id="numreq'+i+'" value="GEN_ID(GEN_REQ_REQUISICAO, 1)">' +
 '<input type="hidden" name="cod_proj_'+i+'" id="cod_proj_'+i+'" value="'+document.getElementById("cod_gestor33").value+'"> ' +
 document.getElementById("qtd2").value;

uni.innerHTML='<input type="hidden" name="ccum'+i+'" value="'+document.getElementById("cum").value+'"> <input type="hidden"  id="um'+i+'" value="1" name="um'+i+'"> <input type="hidden" name="cdescri'+i+'" value="'+document.getElementById("cdesc").value+'">' + document.getElementById("cum").value;

desc.innerHTML='<input type="hidden" name="cfil'+i+'" value="'+document.getElementById("cod_gestor2").value+'"> <input type="hidden"  id="usr'+i+'" name="usr'+i+'" value="<%=Request.form("coder")%>"> <input type="hidden" name="obser'+i+'" value="'+document.getElementById("obs").value+'">' + document.getElementById("cdesc").value;

bar.innerHTML='<input type="hidden" name="codbarra'+i+'" value="'+document.getElementById("cbarra").value+'">' + document.getElementById("cbarra").value;

ape.innerHTML='<input type="hidden" name="codprodu'+i+'" value="'+document.getElementById("codpro").value+'"> <input type="hidden" name="centrocusto'+i+'" value="'+document.getElementById("sl2").value+'">' + document.getElementById("codpro").value;

  i++;
}
mandando para esta tabela :
<table border="1" width="100%" cellspacing="0" cellpadding="5" id="tabela" name="tabela">

<tr bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
<td width="12%"  name="td1"><font  color=#000099 type="verdana"><b>Codigo</b></font></td>
<td width="15%"  name="td2"><font  color=#000099 type="verdana"><b>Codigo de Barra</b></font></td>
<td width="50%"  name="td3"><font  color=#000099 type="verdana"><b>Descricao</b></font></td>
<td width="3%"   name="td4"><font  color=#000099 type="verdana"><b>UM</b></font></td>
<td width="1%"   name="td5"><font  color=#000099 type="verdana"><b>Quantidade</b></font></td>
</tr>



</table>

O que eu gostaria de sabe se é possivel fazer, e como fazer é, adicionar em cada linha da tabela, um botao que, ao ser clicado, ele delete a linha em que ele esta.

alguém saberia me dizer como fazer isto ?

Muito Obrigado

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

não, não...eu preciso dela deletada mesmo. eu só estou pensando agora se com isso meu insert funciona, pois ele da insert dentro de um for next... se eu deletar a linha do meio por exemplo ( a segunda de 3 ) tenho medo que ele de erro por ser request.form(text1) e depois pule para o text3...

já já eu testo esse link que voce me mandou e já posto aqui para os membros

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, o codigo funcionou...ele deleta certinho mas, se eu deleto a linha ele da pau no insert por causa do contador, ele pula a sequencia entendeu =X

Acho que meu caso é terminal, é sem delete mesmo, se tiver errado o tecnico tem que dar refresh ;D

Link para o comentário
Compartilhar em outros sites

  • 0

Cara você pode tentar fazer isso:

Você NÃO deleta, apenas dá "visibility: hidden" e muda o valor do campo hidden para algo como "nada", "no", "hidden", ou algo parecido.

Quando chegar na outra página, você dá o loop normal e verifica se o valor do campo é "nada".Se o for, é porque o usuário clicou no botão "deletar".

Link para o comentário
Compartilhar em outros sites

  • 0

Hmm...entendi sua ideia mas quero te perguntar duas coisinhas :

1- Como atribuir a visibility : hidden e dar o valor nulo para ele atraves do click do botao

2- veja como funciona o meu loop do insert :

<!--#include file="conexao.asp"-->

<%
call abre_conexao


contador = request.form("contador").Count
for i = 1 to contador
 '   Response.write "INI"&i&"<BR><BR>cod_proj"&i&":"&request.form("cod_proj_"&i&"")&"<BR><BR>"
    cod_proj = request.form("cod_proj_"&i&"")
    cdescri = request.form("cdescri"&i&"")
    ccum = request.form("ccum"&i&"")
    obser = request.form("obser"&i&"")
    ccusto2 = request.form("centrocusto"&i&"")
    cfil = request.form("cfil"&i&"")
    zero = request.form("zero"&i&"")
    qtd = request.form("qtd"&i&"")
    um = request.form("um"&i&"")
    codprodu = request.form("codprodu"&i&"")
    usr = request.form("usr"&i&"")
    numreq = "GEN_ID(GEN_REQ_REQUISICAO, 1)"

    sql = "Insert Into REQ_REQUISICAO ( NUM_REQUISICAO, COD_USUARIO, COD_PRODUTO, TIPO_REQUISICAO, QTDE_SOLICITADA, QTDE_ATENDIDA, PRIORIDADE, STATUS, COD_FILIAL, COD_CCUSTO, OBSERVACAO, COD_PROPRIETARIO, UMEDIDA, DESCRICAO, COD_TECNOLOGIA_GESTOR) values (  "&numreq&", "&usr&", "&codprodu&", "&um&", "&qtd&", "&zero&", "&um &", "&zero &", "&cfil &", "&ccusto2&", '"&obser&"', "&cfil&", '"&ccum&"', '"&cdescri&"', "&cod_proj&")"
       set r1 = conexao.execute(sql)

  '  Response.write sql


next









call fecha_conexao
%>


<script languange = "javascript">

alert("Requisição Concluida com Sucesso !");

</script>

<html>
<meta http-equiv="refresh" content="1;url=logout.asp">
<body>
</body>
</html>

Ele pega de acordo com o indice do da tabela, que a cada linha que crio na mesma, ela adiciona +1 ao indice...então, quando ele for fazer o loop vai dar erro por que vai estar faltando um indice, ao menos que tenha um modo de, ao deletar uma linha, mudar o nome dos inputs hiddens para um numero menor

Por exemplo

-tenho 3 linhas

-deleto a linha 2

-renomeio os itens da linha 3 para 2

sacou ?

Link para o comentário
Compartilhar em outros sites

  • 0

Respondendo as perguntas:

1- Como atribuir a visibility : hidden e dar o valor nulo para ele atraves do click do botao ?

<html>
<head>
<script type="text/javascript">
function Esconde() {
x = document.getElementById("divisao_esconder")
x.style.visibility = "hidden"
document.form.escondido.value="nada"
}
</script>
</head>
<body>
<form name="form" action="pagina2.php" method="post">
<div id="divisao_esconder">
Texto que irá esconder...<br>
<input type="hidden" name="escondido" value="entrada_que_seria_passada_se_o_usuário_não_excluísse">
<br>
<input type="button" value="Esconder" onclick="Esconde()">
</div>
</form>
</body>
</html>

Aí depois você dentro de seu loop, verifica se o valor da entrada é "nada".Se for, não faz nada.Se for diferente de "nada", executa a função normalmente

Escrevi com pressa daqui a pouco vou desligar mas qualquer dúvida posta que amanhã respondo

Link para o comentário
Compartilhar em outros sites

  • 0

Eu estava analisando o codigo e infelizmente não pode ser desse jeito. Tambem olhei aqui com o pessoal, eles me disseram que quando eu deleto a linha, como ela é criada em um array, ela, ao ser deletada, reestrutura os indices do meu array, e quando eu debuguei vi que realmente isso é verdade, independente da linha em que eu deleto, os indices se ajustam e o contador se ajusta para o numero de arrays atual.

Porem, no debug direto do insert, a cada linha que eu deleto, ele limpa o valor da linha de cima ou de baixo na hora do insert, como voces podem ver aqui

cod_proj1:4

Insert Into REQ_REQUISICAO ( NUM_REQUISICAO, COD_USUARIO, COD_PRODUTO, TIPO_REQUISICAO, QTDE_SOLICITADA, QTDE_ATENDIDA, PRIORIDADE, STATUS, COD_FILIAL, COD_CCUSTO, OBSERVACAO, COD_PROPRIETARIO, UMEDIDA, DESCRICAO, COD_TECNOLOGIA_GESTOR) values ( GEN_ID(GEN_REQ_REQUISICAO, 1), 2, 3325, 1, 1, 0, 1, 0, 2103, 103, 'obs1', 2103, 'CJ', 'CONJUNTO DE BROCAS DE AÇO RAPIDO C/7PEÇAS', 4)

cod_proj2:

Insert Into REQ_REQUISICAO ( NUM_REQUISICAO, COD_USUARIO, COD_PRODUTO, TIPO_REQUISICAO, QTDE_SOLICITADA, QTDE_ATENDIDA, PRIORIDADE, STATUS, COD_FILIAL, COD_CCUSTO, OBSERVACAO, COD_PROPRIETARIO, UMEDIDA, DESCRICAO, COD_TECNOLOGIA_GESTOR) values ( GEN_ID(GEN_REQ_REQUISICAO, 1), , , , , , , , , , '', , '', '', )

Contador = 2

esta era uma tabela com 3 linhas, ao deletar a linha do meio, a terceira linha assumiu o array de numero 2 mas seus values ficaram em branco como podem ver.

O que sera que esta acontecendo ? Vou postar o codigo que utilizo para criar e deletar linhas :

deletar :

function deleteRow(i) {
        document.getElementById('tabela').deleteRow(i)
    }
Inserir ( com o botao que deleta junto )
var i = 1;

function Insere(){

var x=document.getElementById('tabela').insertRow(1)
var qt=x.insertCell(0)
var uni=x.insertCell(0)
var desc=x.insertCell(0)
var ape=x.insertCell(0)

qt.innerHTML='<input type="hidden" name="qtd'+i+'" value="'+document.getElementById("qtd2").value+'">'+
 '<input type="hidden" name="contador"      id="contador" value="1">' +
 '<input type="hidden" name="zero'+i+'"     id="zero'+i+'" value="0">' +
 '<input type="hidden" name="numreq' + i + '"    id="numreq' + i + '" value="GEN_ID(GEN_REQ_REQUISICAO, 1)">' +
 '<input type="hidden" name="cod_proj_'+i+'" id="cod_proj_'+i+'" value="'+document.getElementById("cod_gestor33").value+'"> ' +
 document.getElementById("qtd2").value +
 ' <input type="button" value="-" onclick="deleteRow(this.parentNode.parentNode.rowIndex)">';

uni.innerHTML='<input type="hidden" name="ccum'+i+'" value="'+document.getElementById("cum").value+'"> <input type="hidden"  id="um'+i+'" value="1" name="um'+i+'"> <input type="hidden" name="cdescri'+i+'" value="'+document.getElementById("cdesc").value+'">' + document.getElementById("cum").value;

desc.innerHTML='<input type="hidden" name="cfil'+i+'" value="'+document.getElementById("cod_gestor2").value+'"> <input type="hidden"  id="usr'+i+'" name="usr'+i+'" value="<%=Request.form("coder")%>"> <input type="hidden" name="obser'+i+'" value="'+document.getElementById("obs").value+'">' + document.getElementById("cdesc").value;

ape.innerHTML='<input type="hidden" name="codprodu'+i+'" value="'+document.getElementById("codpro").value+'"> <input type="hidden" name="centrocusto'+i+'" value="'+document.getElementById("sl2").value+'">' + document.getElementById("codpro").value;

  i++;


}

alguém tem ideia do que seja ? Obrigado desde já

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Não, cara

Faz como eu lhe mostrei ali em cima.

Você não vai precisar deletar linha nenhuma

Você apenas deixa ela invisível e muda o valor com campo "hidden" para "nada"

Na outra página, você verifica se o valor do campo é "nada".Se for, não faz nada.Se não for, você executa o script normalmente

Qualquer coisa posta aí

Link para o comentário
Compartilhar em outros sites

  • 0

Bom cara, no script q você me mandou, ele esconde em dentro de um div certo ?... mas é que você escolhe aonde o div tem que ficar, no meu caso, não se sabe qual linha da tabela eu vou esconder. e tambem, ele tem que estar dentro de um form, no meu, todos estao no mesmo form. por isso que eu digo, eu ACHO q o jeito mais correto seria pelo que eu estou fazendo mesmo.

Mas por esse jeito ainda da problema, eu dei um debug aqui e percebi o seguinte, quando o var i = 1 esta FORA da função que cria a tabela, o array não se reorganiza apos o delete, se eu deletar o 2 de 3, fico com text1 e text 3...

Se eu colocar a var i = 1 DENTRO da função, os indices se organizam perfeitamente, mas ai, o insert vem " bagunçado ", ao invés de jogar os values nos determinados inserts, ele joga os values de todos, no primeiro.

O que sera que esta confundindo de cada modo que eu faço ? -_-

Abraço

Hmm, outra coisa, as linhas não tem nome no form, nem os itens que aparecem escritos, não acho outra opção a não ser a minha mesmo, mas fico com o problema acima...

alguém sabe como consertar isto ?

Link para o comentário
Compartilhar em outros sites

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...