Ir para conteúdo

POWERED BY:

Arquivado

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

sambuka

ajax pegar valor input na função mouse leave

Recommended Posts

eaew galera...tenho o seguinte codigo

$(document).ready(function(){
	$(".baseinfcoment").on('mouseleave',function(){		
		var $valor = $(this).parents('#pegavalor');// Quando o formulário for enviado, essa função é chamada
		// Colocamos os valores de cada campo em uma váriavel para facilitar a manipulação
		var postcomcodigo = $("#codpostinfcom",$valor).val();	
		alert(postcomcodigo);
		var bloqueio_coment= 0; 
		if(bloqueio_coment == 0){
			 //Verifica se a variavel esta com o valor original, evitando que o comando "window.setInterval" seja chamado mais de uma vez.
			window.setInterval("buscar_auxiliar_coment()", 25000); //Funçao ativada automaticamente de tempo em tempo.
			bloqueio_coment = 1; //Muda o valor da variavel, impedindo que o "if" deixe executar novamente o comando "window.setInterval".
	
		}
		
	});
});

esse é o formulario

<section id="basecomentario"> 
  <span class="titcoments">Comentários</span> 
     <?php  include '../js/longPolling_comentario.php'; ?>
  <div id="pegavalor">
      <form action='' method='post' name='infpostcom' id="infpostcom">
         <input type="hidden" name="codposinfcom" id="codpostinfcom" value="<?php echo $listapost['poscodigo']?>">
      </form>
  </div>
  <section id="baseinfcoment" class="baseinfcoment">                                   
  <?php
  include '../consulta/busca_comentario_fixo.php';
  ?> 
  </section>                   
</section>

O que acontece.....quando eu tiro o mouse da div class baseinfcoment executo a função e quero pegar o valor do input codposinfcom.....porém fica undentified.

 

Lembrando que isso é uma impressão de comentário, então as divs se repetem varias vezes, tenho que pegar o valor da div correta e imprimir corretamente nela.

Sei que vai ser complicado entender....qualquer duvida so pergunta que vou tentar ir esclarecendo..Obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não use IDs então, se os elementos se repetem, o ID não pode se repetir.

 

Use classes nesses casos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!

Bruno, funcionou melhor com a sua dica, mas ainda não esta funcionando certo.

Tenho esse script:

<script type="text/javascript">
//Variavel usada dentro da funcao "busca_automatica()", para que o botao "busca_ajax automática" chame a funcao "busca_automatica()" apenas uma vez.
$(function() {			
	$('.baseinfcoment').on("mouseleave",function(){		
		var $idpostcod = $(this).parents('.basecomentario');
		var codpostiden = $(".identificapost",$idpostcod).val();		
		var bloqueio_coment= 0; 
		if(bloqueio_coment == 0){
			 //Verifica se a variavel esta com o valor original, evitando que o comando "window.setInterval" seja chamado mais de uma vez.
			window.setInterval(buscar_auxiliar_coment(codpostiden), 25000); //Funçao ativada automaticamente de tempo em tempo.
			bloqueio_coment = 1; //Muda o valor da variavel, impedindo que o "if" deixe executar novamente o comando "window.setInterval".
	
		}
	});
});
$(function() {			
	$('.baseinfcoment').on("mouseenter",function(){			
		var bloqueio_coment= 1; 
	});
});

var permicao_coment = 1; //Variavel que indicara a permicao da funcao "buscar_auxiliar()"    
//Funcao que chamara o arquivo "buscar.php" para varrer o banco
//------------------------------------------------------------------------------------
function buscar_auxiliar_coment(valorcod){ 
	//Funcao auxiliar que serve para chamar a funcao "buscar(binario)", mas impedindo que a mesma seja chamada novamente antes de realizar o pedido de busca anterior.
    if(permicao_coment != 0){				
		//Verifica se tem permicao para chamar a funcao "buscar(binario)" (para nao chamar a outra funcao antes que a mesma termine as buscas).
        permicao_coment = 0; //Altera a variavel "permicao" para que este "if" não permita que a funcao "buscar(binario)" não seja chamada antes do tempo.
        buscarcoment(valorcod); //Chama a funcao "buscar(binario)".
		
    }
}

//------------------------------------------------------------------------------------
function buscarcoment(binario){
    var busca_ajax;
 
 
    //Verificao navegador
    if(window.XMLHttpRequest) {
        busca_ajax = new XMLHttpRequest();
    }
    
    else if(window.ActiveXObject) {
        busca_ajax = new ActiveXObject("Microsoft.XMLHTTP");
    }
    // Arquivo PHP juntamente com o valor digitado no campo, e a função "escape()" converte os caracteres especiais em hexadecimal iniciado por "%".
    var url = "consulta/busca_comentario.php?ticket=<?php echo $ticketreal?>&verifica=ok&grupo=<?php echo $codigogrupo?>&pageativa=<?php echo $_GET['idpagegru']?>&nomegrupo=<?php echo $nomegrupo ?>&poscodigo="+binario;
    
    // Chamada do metodo open e envia os dados para o arquivo buscar.php.
    busca_ajax.open("Get", url, true);

    // Quando o objeto recebe o retorno, chamamos a seguinte função;
    busca_ajax.onreadystatechange = function(){

        //Aguarda o ajax executar
        if(busca_ajax.readyState == 4 && busca_ajax.status == 200) {

            //Resposta retornada pelo "buscar.php" via "echo"
            var resposta_coment = busca_ajax.responseText;
            
            //Verifica se e um conteudo vazio.
            if(resposta_coment != "" && !(resposta_coment.match(/^\s+$/))){			
				
                //Criamos uma "div" com o conteudo encontrado dentro e colocamos tudo dentro da tag "p".
				$("#"+binario).html(resposta_coment);
                $("#"+binario).find("script").each(function(i) {
                    eval($(this).text());
                });
                permicao_coment = 1; //Coloca 1 para que a função "buscar_auxiliar()" consiga chamar novamente esta função ("buscar(binario)").
            }
                
            else{
                permicao_coment = 1; //Caso algo de errado no "if" coloca a permicao para "1", permitindo outra busca nesta funcao ("buscar(binario)") chamada pela função "buscar_auxiliar()"
            }
            
            busca_ajax.send(null); //Limpa a variavel para que possa ser novamente criado na proxima execucao
        }    
    }    
    busca_ajax.send(null); //Limpa a variavel para que possa ser novamente criado na proxima execucao    
}



</script>

ele pega a informação nesse php:

<?php include '../js/longPolling_comentario.php';//insere os sistema de atualização automatica dos comentarios?>                   
                    <section id="basecomentario" class="basecomentario"> 
                    	<input type="hidden" class="identificapost" value="<?php echo $listapost['poscodigo'];?>" >
                        <span class="titcoments">Comentários</span>                       
                        <section id="<?php echo $listapost['poscodigo'];?>" class="baseinfcoment">                                  
                        <?php
                            include '../consulta/busca_comentario_fixo.php';
                        ?> 
                        </section>                   
                  </section>

Ok vamos la.

O script pega o valor da classe identificapost quando o mouse sai da DIV baseinfcoment.

(lembrando que elas se repetem varias vezes)

Em seguida ele envia esse valor para o script que verifica se existem novos comentarios.

Se existir ele imprime na div com ID da postagem (fica na classe baseinfcoment).

 

OK ate ai tudo certo, agora vou explicar o erro.

 

temos 2 postagens. A e B

cada postagem tem sua classe baseinfcoment com o ID da determinada postagem.

Fui la e comentei a postagem A.

Para o sistema verificar se existe um novo post, passei o mouse sobre a classe baseinfcoment A e depois tirei, trouxe certinho o comentario da postagem A.

Agora

Fui la e comentei a postagem B.

Para o sistema verificar se existe um novo post, passei o mouse sobre a classe baseinfcoment A e depois tirei,

Pronto, não aparece nada, ops mas é so passar sobre o baseinfcoment B, não ele não funciona mais, posso ir la e passar o mouse e tirar da classe baseinfcoment B que nada vai acontecer.

 

Resumindo.

 

Se eu comentar a postagem A tenho que passar primeiro o mouese sobre a classe a postagem A, se eu passar em uma classe de outra postagem antes, nada mais funciona.

 

Caramba deve ta ruim de entende a macumba que fiz.

 

Ta samuel mas o que tu quer fazer ?

 

Quero um sistema de comentarios que verifique no banco quando tem um novo comentario pra determinada postagem, porém so quero que ele verifique quando a pessoa não estiver com mouse sobre a classe que armazena a lista de comentarios.

Quem puder me ajudar nessa missão agradeço.


Opa opa..consegui..melhorei..era burrice minha no bnco de dados....

Peço desculpa q quem tentou ler e entender o que escria ali. kkkkkkkk

Tenho que melhorar o codigo ainda..porém ja esta bem legal :D *---*

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.