Ir para conteúdo

POWERED BY:

Arquivado

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

Davide Ricardo

Buscar último id da div inserida

Recommended Posts

viva pessoal,

é assim eu tenho um sistema em javascript recorrendo a uma função ajax para adicionar até 5 div's.

Agora quero colocar uma opção para remover a ultima linha inserida.

Por exemplo. Eu adiciona 3 linhas (div's), em vez de remover a linha dois (já tenho esse código), quero que ele remova a div com id 3.

 

equipamentos.php (onde tem a funcao javascript)

// SINTAXE: ajax_function(ACÇAO, VALOR1, VALOR2, ID_LAYER_DESTINO);
ajax_function("adicionar_equipamento", "0", "", "simulador0");

//Adiconar equipamentos
function adicionar_equipamento() {
  
  if (document.getElementById("simulador1").innerHTML == "") {
  ajax_function("adicionar_equipamento","", "1", "simulador1"); return
  }
  if (document.getElementById("simulador2").innerHTML == "") {
  ajax_function("adicionar_equipamento","", "2", "simulador2"); return
  }
  if (document.getElementById("simulador3").innerHTML == "") {
  ajax_function("adicionar_equipamento","", "3", "simulador3"); return
  }
  if (document.getElementById("simulador4").innerHTML == "") {
  ajax_function("adicionar_equipamento","", "4", "simulador4"); return
  }
  if (document.getElementById("simulador5").innerHTML == "") {
  ajax_function("adicionar_equipamento","", "5", "simulador5"); return
  }		
}
//Adiconar equipamentos

//Remover equipamentos
function remover_equipamento(simulador_id) {
  document.getElementById(simulador_id).innerHTML = "";	
//Remover equipamentos
}

<style>div.simulador { width:100%; height: 20 px; }</style>
	  <div class="simulador" id="simulador0"></div>
	  <div class="simulador" id="simulador1"></div>
	  <div class="simulador" id="simulador2"></div>
	  <div class="simulador" id="simulador3"></div>
	  <div class="simulador" id="simulador4"></div>
	  <div class="simulador" id="simulador5"></div>


aqui tenho o link para executar a funcao remover_equipamento.

 

funcoes.js

function ajax_function(accao, valor, valor2, destino)
{
var xmlHttp;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
	{
	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
  catch (e)
	{
	try
	  {
	  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	catch (e)
	  {
	  alert("Your browser does not support AJAX!");
	  return false;
	  }
	}
  }
  xmlHttp.onreadystatechange=function()
	{
	if(xmlHttp.readyState==4)
	  {
	  //alert(xmlHttp.responseText);
	  document.getElementById(destino).innerHTML = xmlHttp.responseText;
	  }
	}
  //Math.random() vai buscar ultimo registo enviado 
  xmlHttp.open("GET","funcoes.php?accao=" + accao + "&valor=" + valor + "&valor2=" + valor2,true);
  xmlHttp.send(null);
  }

funcoes.php

que vai buscar os dados recorrendo a php que é para inserir na div

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei se era assim mas funcionou

 

Isto contem 7 elementos iniciais sendo que 1 deles nao e da classe simulador ou seja o count vai ficar na primeira execucao com 6 elementos, e depois vai diminuindo ate chegar a 0, Note o elemento que nao e da classe nao e eliminado

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<style>div.simulador { width:100%; height: 20 px; }</style>
	  <div class="simulador" id="simulador0">Equ1</div>
	  <div class="simulador" id="simulador1">Equ2</div>
	  <div class="simulador" id="simulador2">Equ3</div>
	  <div class="simulador" id="simulador3">Equ4</div>
	  <div class="simulador" id="simulador4">Equ5</div>
	  <div class="simulador" id="simulador5">Equ6</div>
	  <div class="semclasse">Teste</div>
<script>
q=document.getElementsByTagName("div");
qtdiv=q.length;

function qtd(){
count=0;
atual=0;
for(i=0;i<qtdiv;i++)
{
if(q[i].className=="simulador"){count++;}
}
aeliminar="simulador"+(count-1);
count--;
qtdiv=count;
if(count>=0){
document.getElementById(aeliminar).style.display="none";
}
else{alert("Fim dos elementos classe simulador")}
}
</script>
<a href="java script:qtd()">testar</a>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu testei e não funcionou.

Por exemplo, se eu adiciono os 5 restantes div's, quando eu vou apagar ele apaga-me até ao div id = 2.

Depois se eu adicionar mais div's (até id 6) e depois tentar remover novamente, diz que já chegou ao limite.

Mas desde já obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já ta melhor. Coloquei o valor contador e o actual = 1.

Mas se eu apagar depois não posso voltar a adicionar. E gostaria que desse tanto para adicionar como para remover. Pra adicionar tenho a função que ja mostrei em cima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois entao e so testei no exemplo que mandei, rsrs foi mal.

 

 

Mas em teoria e o seguinte, voce deve criar uma variavel ou entao um array que guarda a dimensao dos divs que criou e depois ao carregar em eliminar vai eliminar o id da quantidade de divs caso comece do 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que isto para adicionar conteudos nas div's vai buscar dados a funcao ajax. nao sei se tem alguma coisa a ver.

Eu precisava que ele adicionasse e removesse como bem o utilizador entendesse.

É essa a grande dificuldade. Porque depois ele vai enviar os dados para inserir na base dados, e só poderia inserir aqueles que estivessem devidamente preenchidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu só preciso mesmo de saber qual é a ultima div que foi inserida, pois o meu código adiciona e remove bem.

Mas eu quero que ele remova apartir do ultimo.

Por exemplo, se eu tenho as 6 div's activas, se eu clicar em remover, a funcao tem que remover a div 6.

Eu tenho a funcao a correr para cada div, ou seja cada div tem um botao remover.

Tá meio confuso, mas espero que percebam lolol.

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.